rails server error (rails 3) in windows

Hey all,

I'm trying to learn RoR with absolutely no programming experience following the ruby on rails essentials tutorial on lynda.com. I'm still very early in the video series and I created a new project using the command:

rails new simple_cms -d mysql

but when I try to launch the web server, this happens: C:\Users\j\Sites\simple_cms>rails server C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': 193: %1 is not a valid Win32 application. - C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/1.9/mysql2.so (LoadError)     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `<top (required)>'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `<top (required)>'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:68:in `require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:68:in `block (2 levels) in require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:66:in `each'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:66:in `block in require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `each'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler.rb:119:in `require'     from C:/Users/j/Sites/simple_cms/config/application.rb:7:in `<top (required)>'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `require'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:53:in `block in <top (required)>'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `tap'     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.2/lib/rails/commands.rb:50:in `<top (required)>'     from script/rails:6:in `require'     from script/rails:6:in `<main>'

C:\Users\j\Sites\simple_cms>

Some version info just in case: C:\Users\j\Sites\simple_cms>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

C:\Users\j\Sites\simple_cms>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

C:\Users\j\Sites\simple_cms>mysql --version mysql Ver 14.14 Distrib 5.5.21, for Win64 (x86)

I've already searched the web looking for solutions, but none of them seem to work. Any help would be greatly appreciated, thank you.

Have you add mysql gem?

(maybe you have added it but just in case )

Javier

sorry my bad, I’ve seen it :slight_smile:

It seems that its a windows problem

Javier Quarite wrote in post #1052402:

Have you add mysql gem? (maybe you have added it but just in case )

Javier

I'm pretty sure I did, "gem install mysql", correct?

Yes, have you installed it using rails installer?

or something else?

Hey all, I’m trying to learn RoR with absolutely no programming experience following the ruby on rails essentials tutorial on lynda.com. I’m still very early in the video series and I created a new project using the command:

rails new simple_cms -d mysql

but when I try to launch the web server, this happens: C:\Users\j\Sites\simple_cms>rails server C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require’: 193: %1 is not a valid Win32 application. -

Most likely this is caused by an incorrect version of “libmysql.dll” that you have in your system.

Some version info just in case: C:\Users\j\Sites\simple_cms>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

C:\Users\j\Sites\simple_cms>mysql --version

mysql Ver 14.14 Distrib 5.5.21, for Win64 (x86)

I’ve already searched the web looking for solutions, but none of them seem to work. Any help would be greatly appreciated, thank you.

Ruby 32bits can’t be matched or use 64bits version of MySQL dlls.

Please read this:

http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

You can skip the steps that involve installing MySQL itself, but not the ones about using MySQL Connector/C (32bits) and link mysql gem to it.

It is recommended that once you compile the gem, copy the libmysql.dll provided inside MySQL Connector/C to your Ruby bin directory and ensure Ruby bin directory is before MySQL one in the PATH (you can check that with “SET PATH” from the console)

Also, once you do this, ensure you’re pointing to the right version in your Gemfile, or bundler will complain and ask you to bundle install, which you should avoid.

Always install gems outside bundler when you need to provide additional compilation flags, the do “bundle check” to ensure it picks the manually installed gem.

Also, remove the previous installed version.

Hope that helps.

Hi Guys Struggled some time with this, but found the issue appears to be the line in the mysql2.rb file:

require mysql/mysql

Removing this works better however the server doesn't start normally. When I copied the mysql.rb file from the mysql folder to

C:\Ruby\lib\ruby\gems\1.9.1\gems\mysql2-0.3.14\lib

and renamed mysql2.rb to something else server starts fine. On further investigation I found anothe copy of mysql.rb in

C:\Ruby\lib\ruby\gems\1.9.1\gems\mysql-2.9.1-x86-mingw32\lib

Which is used if you remove the one you just copied into mysql2-0.3.14\lib.

The mysql.rb file has the line :

require 'mysql/mysql_api'

I therefore edited the mysql2.rb file and added the line

require 'mysql2/mysql2_api'

Lo! it works!

Further to the above I decided to start again with a clean install using railsinstaller.

Went through similar issues but on renaming mysql2.rb and not having an old mysql.rb file in the path, I found it was erroring on line 72 of runtime.rb which when I commented out :           #Kernel.require file

Server started ok

it’s not that necessary to use mysql so early if u’re just learning RoR. just start a new project without mysql options:

rails new project_name

I aggree. SQLITE will work fine. the only difference will be your config/database.yml

When you do rails new project_name rails will set up the yml properly.

I wrote a post back 2010 on setting up rails 2 sqlite on XP

http://blog.johnivanoff.com/2010/09/ruby-192-rails-3-clean-install-on.html

Might help.

John