15

我是使用 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
  • 服务器版本 5.5.21
  • 导轨 3.2.1

谢谢!

4

7 回答 7

42

我最好的猜测是您表示为 Windows 的机器启用了 IPv6 网络。因此,当您尝试访问 localhost 时,它会解析为“::1”。这实际上是本地机器,然而,默认 MySQL 安装通常将绑定地址设置为 127.0.0.1,这将导致 localhost 在此设置中失败。

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

 Reply from ::1: time<1ms

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

 host: 127.0.0.1

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

于 2012-05-29T04:33:50.510 回答
6

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

于 2013-01-11T19:25:39.637 回答
6

database.yml中的主机值更改为“127.0.0.1”即可。或者,您可以修改您电脑的主机文件,添加一个项目为“localhost 127.0.0.1”。

于 2013-06-08T11:08:22.117 回答
5

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

于 2013-08-18T12:34:32.047 回答
1

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

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: bookmobile
  pool: 5
  username: macDaddy
  password:
  host: localhost
  socket: mysql
  port: 3306
于 2012-05-29T04:30:36.907 回答
1

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

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

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

于 2016-02-08T15:29:27.577 回答
0

确保 mysql 服务器正在运行。

于 2013-10-09T05:36:12.123 回答