我正在尝试在我的计算机上启动并运行rails应用程序,并且我在创建数据库时遇到问题。我已正确安装/设置rails,mysql并安装了mysql 2.8.1 gem(我用gem list验证了这一点)。
所以现在,我正在尝试运行'rake db:create:all',我收到以下错误:
无法为其创建数据库 { “编码”=> “中UTF8”, “用户名”=> “中根”, “adapter”=>“mysql”,“database”=>“pyo”, “host”=>“localhost”,“password”=> nil, “socket”=>“/ tmp / mysql.sock”},charset: utf8,整理:utf8_unicode_ci(如果 你手动设置charset,make 确定你有匹配的排序规则)
无法为其创建数据库 { “编码”=> “中UTF8”, “用户名”=> “中根”, “适配器”=> “中的MySQL”, “数据库”=> “中pyo_test”, “host”=>“localhost”,“password”=> nil, “socket”=>“/ tmp / mysql.sock”},charset: utf8,整理:utf8_unicode_ci(如果 你手动设置charset,make 确定你有匹配的排序规则)
我目前在Snow Leopard上运行5.5.10 MySQL社区服务器(GPL)(10.6.6)
这是我的database.yml文件中的内容
development:
adapter: mysql
encoding: utf8
database: pyo
username: root
password:
socket: /tmp/mysql.sock
host: localhost
test:
adapter: mysql
encoding: utf8
database: pyo_test
username: root
password:
socket: /tmp/mysql.sock
host: localhost
我注意到错误的结尾如何“charset:utf8,collation:utf8_unicode_ci(如果你手动设置字符集,请确保你有匹配的排序规则)” - 这是问题吗?如果是这样,我该如何解决?
我已经被困在这件事上好几个小时了,找不到任何对谷歌有帮助的东西。所以在这一点上任何帮助都会非常感激。
谢谢!
答案 0 :(得分:2)
认为我有类似的东西...通过将其添加到database.yml:
来修复host: 127.0.0.1
或者在您的情况下,将其从localhost更改。
答案 1 :(得分:2)
我遇到了与mysql2 gem相同的问题。然后我发现我的MySQL只在'localhost'中侦听而不是'127.0.0.1',所以我将它改为'localhost',现在我不再讨论这个问题了。现在一切都有效。
答案 2 :(得分:2)
我知道这个帖子已经老了,但是作为一个IT人员,他相信在一个地方保持良好的可靠文档:
问题实际上源于您的" config / database.yml"文件。您将ROR指向MySQL Socket的错误位置。
我遇到了这个问题,原来是宝石是在mac系统上构建的,并且开发人员没有考虑其他操作系统,只需将他的" mysql.sock"文件在" / tmp"目录而不是" /var/run/mysqld/mysqld.sock"
所以他的" database.yml"文件看起来像:
development:
adapter: mysql2
#encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /tmp/mysql.sock
因为我在Ubuntu系统上,所以我必须将我的内容改为:
development:
adapter: mysql2
#encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /var/run/mysqld/mysqld.sock
是的,错误可能会产生误导,但它与您的"编码"无关。或者你是使用localhost还是127.0.0.1 (至少在linux / UNIX系统中这些转换为同一个东西并且是同义词)
开始编辑
如上所述将编码注释掉也不好。所以我在这里提供修改以供参考。
development:
adapter: mysql2
encoding: utf8
database: somedatabase
pool: 5
username: someusername
password: somepassword
socket: /var/run/mysqld/mysqld.sock
结束编辑
答案 3 :(得分:0)
所以,经过大约3到4天的谷歌搜索并尝试了很多不同的东西,我偶然发现了这个:
http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/
猜猜是什么?有用!完美。这让我相信问题出在MySQL 5.5.10中。关于它的一些东西不仅仅适用于我的ruby / rails环境。但是,一旦我按照上面链接上的说明(包括卸载mysql并重新安装5.1),我的应用程序现在可以在我的本地计算机上完美运行。
希望这有助于某人!
答案 4 :(得分:0)
我想分享我的解决方案。 我有我的database.yml如下
default: &default
adapter: mysql2
encoding: utf8
username: root
password:
host: 127.0.0.1
port: 3306
development:
<<: *default
database: dev.database
我的错误在于这一行
database: dev.database
所以,我写的没有(。)
database: devdatabase