Rails 5 and Ruby 2.3.3 Failed to load libmysql.dll

2019-05-23 06:00发布

问题:

Getting below error message logged in the console while starting the server for an application created with mysql database.

Failed to load libmysql.dll from C:\RailsInstaller\Ruby2.3.0\lib\ruby\gems\2.3.0\gems\mysql2-0.4.7-x86-mingw32\vendor\libmysql.dll

Environment Details :

Window 7 64 bit
Rails 5.0.4
ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
mysqld  Ver 5.7.18 for Win64 on x86_64 (MySQL Community Server (GPL))

Post install message from mysql2 ruby gem received below message on the console.

You've installed the binary version of mysql2.
It was built using MySQL Connector/C version 6.1.10.
It's recommended to use the exact same version to avoid potential issues.

At the time of building this gem, the necessary DLL files were retrieved from:
http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-6.1.10-win32.zip

This gem *includes* vendor/libmysql.dll with redistribution notice in vendor/README.

I have tried the solution from here but did not work.

Any help appreciated, thanks in advance.

回答1:

Downgrading mysql2 rubygem from version 0.4.7 to 0.3.21 solved my issue.

Below steps I followed

rails new blog -d mysql # created application with mysql as database
gem uninstall mysql2 #uninstalled mysql2-0.4.7
Gemfile :
    gem 'mysql2', '0.3.21' #Gemfile changed mysql2 version to 0.3.21
bundle update mysql2 #installed mysql2-0.3.21 version


回答2:

Just as an update to this thread, specifying the platform of the gem did the job for me;

gem uninstall mysql2
gem install mysql2 --platform=ruby

And here is my version details:

Windows OS
Ruby 2.5.0p0 (2017-12-25 revision 61468) [i386-mingw32]
Rails 5.1.6
Gemfile:
  gem 'mysql2', '0.5.1'