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服务器正在运行。