Ruby on RailsをMySQLで設定する時に最初にやること覚書

Ruby on Rails

RailsではMySQL(MariaDB)を使いたい時は、初期設定が必要です。

rails new testproject -d mysql

 

サーバ起動前にデータベースを作ろうとすると

cd testproject/
rake db:migrate

rake aborted!
Mysql2::Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)

こんなエラーが出てしまう。これはMySQLを起動していないエラー。

人によって環境は異なりますが、私の環境(旧Cloud9)では、「mysql-ctl start」とコマンドを打っておくことで、MySQLが起動します。

満を持して、もう一度「db:migrate」を打っても…

rake aborted!
ActiveRecord::NoDatabaseError: Unknown database ‘testproject_development’

こんなエラーがでます。これもMySQLにあるものですが、データベースが作られていないというエラー。これを解消するためには、

rake db:create
rake db:migrate

と2つコマンドを打つ必要があります。

ということでRails起動。

# rails起動
rails s -b $IP -p $PORT

無事起動しました。

 

おまけメモ

dbを綺麗さっぱりにしたいときは、「rake db:drop」というコマンドを使います。

rm -rf」並の破壊力なので使う時は注意。

rake db:drop && rake db:create && rake db:migrate

私は面倒なので、こんな感じでまとめて打ちます。「&&」は&&の左側の処理が成功した場合に右側の処理に移る便利なシェルコマンドです。

コメント