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

时间:2012-05-29 03:54:07

标签: mysql ruby-on-rails mysql2

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

MySQL -u macDaddy -p

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

rake db:schema:dump

在命令行我收到此错误: 耙子流产了! 无法连接到'localhost'(10061)

上的MySQL服务器

我的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 服务器版本5.5.21

Rails 3.2.1

谢谢!

7 个答案:

答案 0 :(得分:41)

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

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

 Reply from ::1: time<1ms

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

 host: 127.0.0.1

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

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

答案 3 :(得分:4)

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

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:0)

确保mysql服务器正在运行。