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.yml 中 host 的值更改为 "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
Rails 应用程序无法连接到 mysql,无法通过套接字 '/var/run/mysqld/mysql.sock' 连接到本地 MySQL 服务器 (2) (Mysql2::Error)