我是一个使用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
谢谢!
答案 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服务器正在运行。