Rails开发 – 无法连接到’localhost’上的MySQL服务器(10061)

我是一个使用MySQL作为数据库的Rails开发人员新手。 我可以使用以下命令成功连接到MySQL:

MySQL -u macDaddy -p 

在命令提示符下,所以我知道用户有效且MySQL正在运行。 但是当我试着奔跑的时候

 rake db:schema:dump 

在命令行我收到此错误:rake aborted! 无法连接到’localhost’上的MySQL服务器(10061)

我的database.yml有问题吗? 这里是:

  development: adapter: mysql2 encoding: utf8 reconnect: false database: bookmobile pool: 5 username: macDaddy password: booklover host: localhost socket: mysql port: 3306 

我也尝试删除端口和套接字行,但我仍然得到相同的错误。 请帮忙。 以下是我的版本:在Windows 7上开发

MySQL Ver 14.14 distrib 5.5.21 for win64 Server version 5.5.21

Rails 3.2.1

谢谢!

我最好的猜测是,您指定为Windows的计算机已启用IPv6网络。 因此,当您尝试转到localhost时,它将解析为“:: 1”。 这实际上是本地机器,但是,默认MySQL安装通常将bind-address设置为127.0.0.1,这会导致localhost在此设置中失败。

您可以通过从命令提示符运行ping localhost来validation这一点,并查看是否收到如下响应:

  Reply from ::1: time<1ms 

要解决此问题,您可以更改配置以指定:

  host: 127.0.0.1 

或者,您可以更改MySQL的配置以允许不同的绑定地址,例如localhost而不是127.0.0.1。

只需将主机更改为主机:127.0.0.1

database.yml中host值更改为“127.0.0.1”将起作用。 或者,您可以修改您的pc的hosts文件,将项目添加为“localhost 127.0.0.1”。

我有一个类似的错误,但这是因为database.yml中缺少端口:3306。 一旦我添加端口:3306问题得到解决。

这是因为你没有在数据库服务器(mysql)中设置密码,试试这个:

 development: adapter: mysql2 encoding: utf8 reconnect: false database: bookmobile pool: 5 username: macDaddy password: host: localhost socket: mysql port: 3306 

确保创建MySQL时设置的端口号(例如:7777),请使用相应的“用户名”和“密码”添加端口号。

 default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: admin host: localhost port: 7777 

在app目录的config目录中的database.yml中。

确保mysql服务器正在运行。