rake db:create - 整理问题

时间:2009-09-01 17:54:40

标签: mysql ruby-on-rails ruby osx-snow-leopard collation

kratos-iii:railsproj zachinglis$ rake db:create
(in /Users/zachinglis/Sites/rails/railsproj)
Couldn't create database for {"adapter"=>"mysql", "host"=>"localhost", "username"=>"root", "password"=>nil, "database"=>"railsproj_development"}, charset: utf8, collation: utf8_general_ci (if you set the charset manually, make sure you have a matching collation)

使用Sequel Pro甚至创建数据库都没有问题。

我该如何解决这个问题? 有一个空密码从来没有给我带来问题。我真的很怀疑它。

7 个答案:

答案 0 :(得分:6)

我遇到了与你相同的问题,我和我的朋友都因此而生气,直到我们找到了这个链接http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard

我刚刚按照mysql的安装步骤进行操作,并且在这里工作得非常好:]

答案 1 :(得分:3)

在安装新的数据库服务器MySQL5.0到5.1后,我遇到了同样的问题。 如果您安装了新的db-server,则您的mysql gem库不适合您的数据库服务器。 您可以通过重新安装mysql gem lib来解决此问题。

 sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/your/mysql_config

答案 2 :(得分:3)

使用以下命令重新安装mysql-server和mysql-client:

sudo apt-get install mysql-server mysql-client

然后需要安装一些库以使MySQL可用于ruby:

sudo apt-get install libmysql-ruby

这一切都解决了我的问题。试试吧 !!! :)

答案 3 :(得分:1)

我刚刚在新的Snow Leopard安装上遇到过这个问题。

我有另一个项目创建数据库没有问题,但我的主项目会给出你描述的错误。在探索之后,唯一的区别是前者指定了一个套接字,而失败的项目(以及你的)也使用了一个主机。

也就是说,这个database.yml会导致问题:

development:
  adapter: mysql
  database: fanvsfan_development
  username: root
  password:
  host: localhost

但这有效:

development:
  adapter: mysql
  database: fanvsfan_development
  username: root
  password:
  socket: /tmp/mysql.sock

我不确定实际差异是什么,但这似乎是一种解决方法。

答案 4 :(得分:1)

使用RVM?为Rails v 2.3执行此操作

export ARCHFLAGS="-arch x86_64" ; gem install --no-rdoc --no-ri mysql -v 2.7 -- --with-mysql-dir=/usr/local --with-mysql-config=/usr/local/mysql/bin/mysql_config

答案 5 :(得分:0)

这是一个很好的参考。如果通过这个来解决我的问题 http://www.ultrasaurus.com/sarahblog/2008/12/getting-started-with-rails-2-day-1/

答案 6 :(得分:-1)

数据库是否已存在? MySQL是否已设置并正在运行?改变了什么? (操作系统升级可能)?新的rails应用程序是否有效?你的其他环境(测试,生产)怎么样?

有背影吗?你可以发帖(使用rake --trace db:create)。通常MySQL会返回一个非常明确的错误消息,rake只是吃它。