Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed to load libmysql.dll file using Ruby on Rails 3

I am making one application using RoR with mysql.I followed the below steps for making app with mysql.

1-rails new projectname -d mysql

2-rails generate scaffold Post title:string body:text

After running the 2nd step I got the following error.

Error:

Failed to load libmysql.dll from C:\Ruby193\lib\ruby\gems\1.9.1\gems\mysql2-0.3.
18-x86-mingw32\vendor\libmysql.dll

I have installed mysql in my system and copied the libmysql.dll file from mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll to C:\Ruby193\bin still i am getting the above error.Please try to help me to resolve this error and i am also interested to know if my mysql DB is present in some other instance instead of my local system how can i connect it using Rails.

I am using Rails version-3.2.19 and win-xp in my system.

like image 762
rajat_474 Avatar asked Mar 31 '15 12:03

rajat_474


1 Answers

After some "Google Work" and try on a Win2k3 Server, it seems like a problem case by "binary version of mysql2".

In recent versions of mysql2, it contains libmysql.dll unlike before it need to compile locally, and the version of libmysql.dll comes from MySQL Connector 6.1.x which remove WinXp/2k3's support.

So, you can try this way i have success in my Redmine installation:

  1. Uninstall your mysql2 gem by gem uninstall mysql2 and remove all mysql2 package
  2. Download a "MySQL Connector/C NoInstall" from MySQL which version should lower than 6.1, in my case is 6.0.2(mysql-connector-c-noinstall-6.0.2-win32.zip), and unzip to a path, such like "D:\MySQLConn"
  3. Install mysql2 by this command:gem install mysql2 --platform=ruby -- '--with-mysql-lib="D:\MySQLConn\lib" --with-mysql-include="D:\MySQLConn\include"'
  4. Run Redmine's install `bundle install --without development test'
  5. Check mysql2 gem gem list mysql2
  6. Remove the gem which not "self-compiled"(by step 3), like name "mysql2-0.3.18-x86-mingw32" and make sure there only a "self-compiled" version of mysql2, looks like "mysql2-0.3.18"
  7. Done!

I hope it will helpful for you.

like image 131
Luuray Avatar answered Sep 18 '22 22:09

Luuray