Ruby on RailsのデフォルトデータベースはSQLiteですが、本格運用するとなるとあまりにも貧弱なので、MySQLを使うことにします。
MySQL対話モードでの作業
これからMySQLに作ろうとするデータベース(mydb)に対して、権限を付与します。
$ mysql -u root -p Enter password: mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'solima'@'localhost' IDENTIFIED BY 'password';
※備考
mydbは、データベース名。
solimaは、MySQLのユーザー名。
localhostは、ホスト名。
passwordは、MySQLのパスワード。
ヘッダーファイルのインストール
これをインストールしておかないと、mysql2 gemのインストールでエラーになります。
Ubuntuの場合 $ sudo apt-get install libmysqld-dev
Ruby環境に対する作業
MySQLアダプターのインストール。
$ sudo `which gem` install mysql2 --no-ri --no-rdoc
Railsアプリケーションごとの作業
Gemfileの修正。
gem 'sqlite3' # この行の下に追加する。 gem 'mysql2'
バンドルインストールします。
$ bundle install
config/database.ymlを以下のように修正します。
development: # 修正前 # <<: *default # database: db/development.sqlite3 adapter: mysql2 encoding: utf8 database: mydb2 pool: 5 username: solima password: password socket: /tmp/mysql.sock # MySQLをソースインストールしたとき # socket: /var/lib/mysql/mysql.sock # CentOSにMySQLをパッケージインストールしたとき # socket: /var/run/mysqld/mysqld.sock # UbuntuにMySQLをパッケージインストールしたとき # socket: /var/lib/mysql/mysql.sock # Vine LinuxにMySQLをパッケージインストールしたとき
※備考
ここでは、開発環境のデータベース(development)をSQLiteからMySQLに変更しています。
※注意
database:で指定したデータベースが存在すると、エラーになります。
MySQLデータベースにデータベースとテーブルを作成します。
$ rake db:create RAILS_ENV=development $ rake db:migrate RAILS_ENV=development