Error 1918 when Installing MySQL ODBC Connector 5.3.6 on Windows

It is somewhat a frustration that even the official website at the time of writing this doesn’t correctly list out the dependency software.

Anyway in short, make sure you have installed Visual C++ Redistributable Packages for Visual Studio 2013 if you are installing MySQL ODBC Connector 5.3.6.

The official website and many other website I found only mentioned to install Microsoft Visual C++ 2010 Redistributable Package. Some websites even gave an inappropriate installation instruction to user. Although Microsoft Visual C++ 2010 Redistributable Package might be required for older version of ODBC connector, but definitely not version 5.3.6.

Also, it is better if you are installing the latest version of Visual C++ as well. Many website I found (such as this, this, this and this) are still providing link to the old version of Visual C++ even a new version is already available at the time of their writing. You may check the latest version of Visual C++ at Microsoft website here but, even the official website cannot be trusted as I can find a more updated version of Visual C++ 2015 here at the time of writing this article…

In summary, trust yourself.

Fixing MySQL Slave_IO_Running: No

If you encounter Slave_IO_Running: No but Slave_SQL_Running: Yes in MySQL replication setup, here may have something that can help.

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
             Slave_IO_State:
                Master_Host: 192.168.58.13
                Master_User: rep
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: master-bin.000052
        Read_Master_Log_Pos: 11114210
             Relay_Log_File: slave-relay-bin.000001
              Relay_Log_Pos: 373226
      Relay_Master_Log_File: master-bin.000052
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 9697034
            Relay_Log_Space: 1790402
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 14431
1 row in set (0.00 sec)

This basically means that the slave server is working, but for some reason the master does not send anything to the slave. To troubleshoot this problem, go to the master server instead and check the error log. In my case, this is what I found.

[root@master mysql]# tail master.err
120220 10:11:45  Failed to open log (file './master-bin.000050', errno 13)

In my case, the file master-bin.000050 is actually there, but the owner is root which therefore cannot be opened by the account mysql. Most likely it is because someone started MySQL using the root account after a server down and later on someone restarted the MySQL again under the mysql account. Anyway changed the owner of the file and problem fixed.

Solving MySQL Installation of system tables failed

First of all, this is the case I encountered and may not be useful on your case.

Situation

To reset the data in MySQL database, for the sake of fixing out-sync database replication.

Procedure

  1. Stopped MySQL service
  2. Renamed the original data folder for backup purpose
  3. Create a new data folder with the same original name
  4. Execute database installation mysql_install_db
  5. Import the dumped data
  6. Set up replication

Problem

When executing database installation, the error message below appeared.

Installation of system tables failed!

Other Symptom

The following command print nothing to the console.

mysqld -V

Cause

After checking the log at /var/log/message, it is found that the SELinux prevented the installation.

Solution

Fix the security context issue used by SELinux

Sorry I am not going to provide the way here because I having really tried that myself.

Permanent set SELinux to Permissive or Disable (Security Risk)

Obviously this is not a good way to fix the problem but if you still want to do that, here is the way.

Edit the file:

vim /etc/selinux/config

Set to permissive

SELINUX=permissive

Or disable

SELINUX=disabled

Finally

This is what you can see:

[root@my-server ~]# mysqld -V
mysqld  Ver 4.1.22-standard-log for pc-linux-gnu on i686 (MySQL Community Edition - Standard (GPL))
[root@my-server ~]#

Extra: Temperately disable SELinux

Here is the way:

echo 0 > /selinux/enforce

Reference

HOWTO: Turning off or disabling SELinux