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