Rails development - Can't connect to MySQL server on 'localhost' (10061)

mysql, mysql2, ruby-on-rails

Solution

My best guess is that the machine, which you indicated as Windows, has IPv6 networking enabled. Thus when you try to go to localhost, it is resolving to "::1". This is in fact the local machine, however, default MySQL installs normally have bind-address set to 127.0.0.1, which would cause localhost to fail in this setup.

You might be able to verify this by running `ping localhost` from the command prompt, and seeing if you get a response like:

 Reply from ::1: time<1ms

To fix this, you can change your config to specify:

 host: 127.0.0.1

Alternately, you can change MySQL's configuration to allow a different bind-address, e.g. localhost instead of 127.0.0.1.

Problem

I'm a Rails developer newbie using MySQL as the database. I can successfully connect to MySQL using the command: ``` MySQL -u macDaddy -p ``` at the command prompt, so I know the user is valid and MySQL is running. But when I try to run ``` rake db:schema:dump ``` at the command line I get this error: rake aborted! Can't connect to MySQL server on 'localhost' (10061) Is something wrong with my database.yml? Here it is: ``` development: adapter: mysql2 encoding: utf8 reconnect: false database: bookmobile pool: 5 username: macDaddy password: booklover host: localhost socket: mysql port: 3306 ``` I've also tried removing the port and socket lines but I still get the same error. Please help. Here are my versions: - developing on Windows 7 - MySQL Ver 14.14 distrib 5.5.21 for win64 - Server version 5.5.21 - Rails 3.2.1 Thanks!

Original source