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

Posted

技术标签:

【中文标题】Rails 开发 - 无法连接到“localhost”上的 MySQL 服务器 (10061)【英文标题】:Rails development - Can't connect to MySQL server on 'localhost' (10061) 【发布时间】:2012-06-03 07:20:04 【问题描述】:

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

    MySQL -u macDaddy -p

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

    rake db:schema:dump

在命令行我收到此错误: 耙中止! 无法连接到“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 Rails 3.2.1

谢谢!

【问题讨论】:

如果指定 127.0.0.1 而不是 localhost 会发生什么? mysqld 是否在监听 3306?试试netstat -an | grep 3306。如果您没有看到类似 *.3306 *.* LISTEN 的内容,则可能是问题所在。 【参考方案1】:

我最好的猜测是您指定为 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。

【讨论】:

作为一个新手,我花了很长时间才意识到您首先需要单独安装 mysql 社区服务器,因为它不包含在 ruby​​ on rails 或 ruby​​ mine 中。 此外,此答案中提到的配置文件位于 config -> database.yml【参考方案2】:

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

【讨论】:

【参考方案3】:

database.ymlhost 的值更改为 "127.0.0.1" 即可。或者,你可以修改你电脑的hosts文件,添加一项为“localhost 127.0.0.1”。

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

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

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

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

【讨论】:

【参考方案7】:

确保mysql服务器正在运行。

【讨论】:

以上是关于Rails 开发 - 无法连接到“localhost”上的 MySQL 服务器 (10061)的主要内容,如果未能解决你的问题,请参考以下文章

Rails 应用程序无法通过命名管道/套接字连接到本地 MySQL 服务器 --- Windows 7 x64

无法连接到 Team Foundation Server

似乎无法连接到 mysql、localhost?

Rails 4部署后无法连接到mysql

Rails 应用程序无法连接到 mysql,无法通过套接字 '/var/run/mysqld/mysql.sock' 连接到本地 MySQL 服务器 (2) (Mysql2::Error)

Rails 服务器正在运行,但无法连接到 localhost:3000