Amazon EC2に LAMP環境、Postfix+Dovecot によるメール環境を構築する方法をシリーズ化して書いていきたいと思いますが、今回はその第一弾で、MySQLサーバー(ver 5.1.52) のインストールと設定です。
使用したインスタンスのイメージは、『Basic 32-bit Amazon Linux AMI 2011.02.1 Beta (AMI Id: ami-300ca731)』です。
管理者権限になる
インストールと設定は管理者権限で行いますので権限を取ります。
$sudo su -
MySQLのインストールと設定ファイルの編集
yumを使って MySQLサーバーをインストールします。
#yum -y install mysql-server
次に設定ファイルを編集します。インストール時に /etc/my.cnf が設定ファイルとして作成されますが、ほとんど何も設定がされていない状態ですので、環境別のデフォルトファイルをコピーして使います。
まず、環境別のファイルを探します。
#find / -name my-*.cnf /usr/share/mysql/my-medium.cnf /usr/share/mysql/my-innodb-heavy-4G.cnf /usr/share/mysql/my-large.cnf /usr/share/mysql/my-huge.cnf /usr/share/mysql/my-small.cnf
それぞれの設定ファイルは、次の環境を想定した設定がされています。
my-small.cnf
|
64Mバイト以下のメモリがあり、MySQLが頻繁に稼働せず使用リソースも少ないサーバー
|
my-medium.cnf
|
32M ~64MバイトのメモリのあるMySQL専用サーバーか、128Mバイトがあり、(Webサーバーのような)他のプログラムも稼働しているサーバー
|
my-large.cnf
|
512Mバイト程度のメモリがあり、主にMySQLが稼働するサーバー
|
my-huge.cnf
|
1G ~2Gバイトのメモリがあり、主にMySQLが稼働するサーバー
|
my-innodb-heavy-4G.cnf
|
4Gバイトのメモリがあり、InnoDBのみを使用しているMySQLが主に稼働しており、複雑なクエリーが少ない接続先から実行されるサーバー
|
インスタンス・タイプに合った設定ファイルを /etc/my.cnf にコピーします。
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
文字コードの設定ですが、今回はutf8を使用しています。my.cnfの関連箇所を修正します。MySQL5.5では[mysqld]セクションのdefault-character-setがcharacter-set-serverに変更になっています。旧名では起動時にエラーになりますので注意してください。また、skip-character-set-client-handshakeからexpire_logs_daysまでは任意です。innodb_data_file_pathが原因で起動しない場合がありますので、/var/lib/mysql/にあるibdata1, ib_logfile0, ib_logfile1を削除して試してください。
[mysqld] default-character-set = utf8 skip-character-set-client-handshake innodb_data_file_path=ibdata1:1G innodb_file_per_table expire_logs_days=30 [mysql] default-character-set = binary [mysqldump] default-character-set = binary
MySQLを起動します。次回以降自動起動させるための設定も合わせて行います。
#service mysqld start #chkconfig mysqld on
MySQL用のユーザーを設定
rootユーザーのパスワードを設定します。
#/usr/bin/mysqladmin -u root password '********'
MySQLにログインして、ユーザー mysql を作成します。********にはパスワードを入力してください。
#mysql -u root -p******** >GRANT ALL PRIVILEGES ON *.* TO mysql@localhost IDENTIFIED BY '********' WITH GRANT OPTION; >GRANT ALL PRIVILEGES ON *.* TO mysql@'%' IDENTIFIED BY '********' WITH GRANT OPTION;
匿名ユーザー、パスワードが設定されていないユーザーを削除します。最後に権限の再読み込みを行っています。
>use mysql; >delete from user where user=''; >delete from user where password=''; >flush privileges;
これでMySQLのインストールは完了です。今回は基本的な設定のみになっていますので、チューニングやレプリケーションについても別の機会になりますが書きたいと思っています。