Tam
Tam

Reputation: 12042

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

Upvotes: 15

Views: 17809

Answers (5)

Mukesh Singh Rathaur
Mukesh Singh Rathaur

Reputation: 13135

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.

Upvotes: 0

Yury
Yury

Reputation: 1

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

works for me. Thank you!

Upvotes: 0

Özgür
Özgür

Reputation: 8247

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

Upvotes: 0

Wouter
Wouter

Reputation: 41

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.

Upvotes: 4

BvuRVKyUVlViVIc7
BvuRVKyUVlViVIc7

Reputation: 11821

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

Upvotes: 6

Related Questions