我正试图让我的第一个“hello world”rails示例在我的OSX 10.6.3框中使用rails getting started guide。
当我去执行第一个rake db:create
命令(我正在使用mysql)时,我得到:
simon@/Users/simon/source/rails/blog/config: rake db:create (in /Users/simon/source/rails/blog) Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql", "database"=>"blog_development", "pool"=>5, "password"=>nil, "socket"=>"/opt/local/var/run/mysql5/mysqld.sock"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)
我发现了大量有关此问题的stackoverflow问题,并提出以下建议:
验证用户和密码是否正确(我在开发箱上运行w / root没有密码)
验证套接字是否正确 - 我可以使用套接字,所以我认为它是正确的
验证用户是否可以创建数据库(如您所见,root可以连接并创建此数据库没问题)
simon @ / Users / simon / source / rails / blog / config:mysql -uroot -hlocalhost 欢迎使用MySQL监视器。命令以;结尾;或\ g。 您的MySQL连接ID是16 服务器版本:5.1.45源分发
输入'help;'或'\ h'寻求帮助。输入'\ c'清除当前输入语句。
的MySQL>创建数据库blog_development; 查询正常,1行受影响(0.00秒)
为了确保这不是一个字符集问题我也尝试过:
mysql> create database foobar CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
注意:这是我的database.yaml:
development:
adapter: mysql
encoding: utf8
reconnect: false
database: blog_development
pool: 5
username: root
password:
socket: /opt/local/var/run/mysql5/mysqld.sock
# host: localhost
请注意,我尝试将套接字切换到localhost但没有效果。
关于这里可能会发生什么的任何想法?
答案 0 :(得分:5)
感谢所有帮助人员。看起来这个问题与我在OSX下安装mysql gem有关。
@tim在我继续下一步然后起身后,我在控制台上出错了,所以我做了一些搜索,发现了这个helpful thread。
卸载我的ruby gems gem uninstall mysql
后,我使用此命令(来自线程)安装了正确的mysql gems:
export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc --no-ri mysql -- --with-mysql-dir=/opt/local/lib/mysql5 --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config
执行此操作后,我能够成功运行rake db:create
并继续。
谢谢!
答案 1 :(得分:2)
可能有很多事情。
sudo gem install mysql
除此之外,我不确定。
答案 2 :(得分:1)
你应该在这里发布你的database.yml
为了让你的测试更好,我会尝试创建一个数据库UTF-8来查看你的数据库是否支持utf-8
create database foobar CHARACTER SET utf8 COLLATE utf8_general_ci
答案 3 :(得分:0)
blog_development
数据库是否已存在?
如果是这样,您可以继续下一步。
尝试在ruby script/server
目录中运行blog/
。
如果没有错误,那么您应该能够导航到localhost:3000
并从此处继续教程http://guides.rubyonrails.org/getting_started.html#hello-rails。
如果ruby script/server
错误,请给我留言。
答案 4 :(得分:0)
我遇到了同样的问题:它是一个老的mysql gem,它不是最新的。重新安装mysql gem就可以了。
答案 5 :(得分:0)
使用以下命令重新安装mysql-server和mysql-client:
sudo apt-get install mysql-server mysql-client
然后需要安装一些库以使MySQL可用于ruby:
sudo apt-get install libmysql-ruby
这一切都解决了我的问题。试试吧 !!! :)