データベースとの接続(MySQL編)
2012/01/29
『改訂新版 基礎Ruby on Rails』 読者サポートページ > Rails本番環境構築ガイド
以下、MySQLをインストールして、Railsアプリケーションから接続するまでの手順を示します。
この文章の内容は、随時更新しています。最終更新日: 2012/05/06
リモートマシンにsudo権限を持つユーザーでSSH接続し、コマンドを順に実行してください。なお、%
はコマンドプロンプト、$
はMySQLモニターのプロンプトを示します。これらの文字は入力しないでください。
MySQLサーバのインストール
CentOS 6.2
% sudo yum install -y mysql-server mysql-devel
2012年1月29日現在、バージョン5.1.52がインストールされます。
Ubuntu Server 12.04/10.04 LTS
% sudo apt-get install mysql-server libmysqlclient-dev
2012年5月6日現在、Ubuntu Server 12.04 LTSではMySQLバージョン5.5.22がインストールされます。Ubuntu Server 10.04 LTSではMySQLバージョン5.1.41がインストールされます(2012年1月29日現在)。途中でrootユーザーのパスワードを入力するように促されますが、いったん何も入力せずにEnterキーを押して次に進んでください。後で設定します。
MySQLサーバのセットアップ
セットアップ作業の前にrootユーザーとasagaoユーザーのためのパスワードを決めてください。mkpasswdコマンドを使って強いパスワードを作るとよいでしょう。ここでは、次の2つを使うことにします。
- gnDwPsFVM5kMU (root)
- diiNv2bid4aTI (asagao)
念のためこれらのパスワードは /root
ディレクトリに記録しておきましょう。
% sudo -s % echo "gnDwPsFVM5kMU" > /root/mysql_root_password % echo "diiNv2bid4aTI" > /root/mysql_asagao_password % chmod 400 /root/mysql_*_password % exit
MySQLを初期化します。
% sudo mysql_install_db
MySQLサーバの起動および自動起動設定(CentOSのみ)
% sudo service mysqld start % sudo chkconfig mysqld on
Ubuntuの場合は、初期化後に起動し、自動起動の設定も済んでいます。なお、Ubuntuの場合はサービス名がmysqldではなくmysqlです。停止・再起動の時に気をつけてください。
データベースおよびユーザーの作成
mysql -u root
コマンドでMySQLモニターを開きます。
$ show databases;
に対して、次のような結果が出れば接続成功です。
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec)
OSやMySQLのバージョンによって初期状態で存在するデータベースのリストが異なります。少なくともinformation_schemaとmysqlがあればOKです。
rootユーザーのパスワードを変更します。
$ SET PASSWORD FOR 'root'@'localhost' = PASSWORD('gnDwPsFVM5kMU');
asagao_productionデータベースを作り、asagaoユーザーに全権を与えます。
$ CREATE DATABASE asagao_production DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; $ GRANT ALL ON asagao_production.* TO 'asagao'@'localhost'; $ SET PASSWORD FOR 'asagao'@'localhost' = PASSWORD('diiNv2bid4aTI');
MySQLモニターを抜けます。
$ quit
データベース接続の切り替え
% sudo su - rails % cd asagao
エディタで Gemfile を開き、
gem "sqlite3"
を
gem "mysql2"
に変更します。そして、Bundlerでmysql2ライブラリをインストールします。
% bundle install
続いて、エディタで config/database.yml を開き、
production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000
という部分を削除して、代わりに次のコードを書き入れます。
production: adapter: mysql2 database: asagao_production username: asagao password: diiNv2bid4aTI host: 127.0.0.1 encoding: utf8
% RAILS_ENV=production rake db:schema:load % RAILS_ENV=production rake db:seed
Railsアプリケーションの再起動
% touch tmp/restart.txt
目次
- VirtualBoxによる仮想マシンのインストール
- MinGWのインストール (Windowsユーザー向け)
- サーバーの準備(CentOS 6.2編)
- サーバーの準備(Ubuntu Server 12.04 LTS編)
- サーバーの準備(Ubuntu Server 10.04 LTS編)
- SSH公開鍵の設置
- Ruby 1.9.3のインストール
- Railsアプリケーションのセットアップ
- ApacheとPhusion Passengerのセットアップ
- データベースとの接続(MySQL編)
- データベースとの接続(PostgreSQL編)
- Capistranoによるデプロイ
- Gitレポジトリの作成
- 続・Capistranoによるデプロイ