简体   繁体   中英

Error when trying to create database with Rails, rake db:create

I'm using Ruby1.9 and Rails 2.3.4 and I have mysql-ruby (2.8.1) gem installed.

when I try rake db:create I get the following

Couldn't create database for {"adapter"=>"mysql", "database"=>"war_development", "username"=>"root", "password"=>nil, "host"=>"localhost"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)

My database.yml has the following for development

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

Any ideas what's going wrong?

Thanks,

Tam

Are you allowed to use the root user without password? Is the mysqlserver listening on 127.0.0.1 or localhost?

Strange to see some behaviour changed, and I don't know if it is specific to snow leopard. I use tiger and got the same error. I added

  host: 127.0.0.1

to the following (ofcourse with a correct mysql root/pw)

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: blog_development
  pool: 5
  username: root
  password: *********
  socket: /tmp/mysqld.sock

And it worked (on tiger/gem mysql-2.8.1/mysql Ver 14.14 Distrib 5.1.30). Hope it helps.

I followed the steps in another SO thread . However, the command for my installation is different from that of there, as I am not upgrading an existing db but installing a fresh one. So instead of advised one

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

I typed the following

$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

PS: host: localhost remains as is, no need to change to 127.0.0.1

$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql/bin/mysql

works for me. Thank you!

You will check out your usrname and password whether its correct or not. Also you will check out whether your mysql server is working correctly. and also some time found the problem of socket path most of the time its is inside /tmp directory but sometimes it may not be. so try with with the default path.

Hopefully if you will try this it will work for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM