株式会社ライブキャストロゴ 株式会社ライブキャスト

Amazon EC2のMicro InstancesにApacheをセットアップするで構築した環境に、MySQLをセットアップしたいと思います。

前回は、コマンドを実行する際に毎回sudoしていましたが、面倒なので最初に実行しておくことにしました。

sudo su

※ 以降、実行したコマンドはroot権限で実行されます。

MySQLをインストールします。

[root@ip-10-243-3-212 ec2-user]# yum install mysql-server
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
amzn | 2.1 kB 00:00
Setting up Install Process
Resolving Dependencies
–> Running transaction check



Total download size: 14 M
Installed size: 31 M
Is this ok [y/N]:y



Installed:
mysql-server.i386 0:5.1.47-1.2.amzn1

Dependency Installed:
mysql.i386 0:5.1.47-1.2.amzn1 mysql-libs.i386 0:5.1.47-1.2.amzn1 perl-DBD-MySQL.i386 0:4.013-3.2.amzn1
perl-DBI.i386 0:1.609-4.2.amzn1

Complete!

インストール完了です。

次に、MySQLの設定を変更します。
今回もyasuの記事、自宅サーバー再構築 その14 CentOS 5.2 にLAMP環境構築(MySQL編)を参考にしました。

/etc/my.cnfを編集します。
※ 編集には、emacsを使用しています。

MySQLの文字コードをUTF-8に変更します
default-character-set = utf8

MySQLクライアントの文字コードをUTF-8に変更します
[mysql]
default-character-set = utf8

以上で設定変更は完了です。

MySQLを起動します。

[root@ip-10-243-3-212 ec2-user]# /etc/rc.d/init.d/mysqld start

起動したら、MySQLのrootユーザにパスワードを設定して、コマンドラインでログインする際に、パスワードなしではログインできないようにします。
※ ここも、yasuの自宅サーバー再構築 その14 CentOS 5.2 にLAMP環境構築(MySQL編)を参考にしています。

[root@ip-10-243-3-212 ec2-user]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.47 Source distribution

MySQLのユーザ、パスワードを確認します。

mysql> select user,host,password from mysql.user;
+——+—————–+———-+
| user | host | password |
+——+—————–+———-+
| root | localhost | |
| root | ip-10-243-3-212 | |
| root | 127.0.0.1 | |
| | localhost | |
| | ip-10-243-3-212 | |
+——+—————–+———-+
5 rows in set (0.00 sec)

ホスト名がlocalhostのrootユーザにパスワード設定します

mysql> set password for root@localhost=password(‘任意のパスワード’);
Query OK, 0 rows affected (0.00 sec)

ホスト名が127.0.0.1のrootユーザにパスワード設定します

mysql> set password for root@127.0.0.1=password(‘任意のパスワード’);
Query OK, 0 rows affected (0.00 sec)
ip-10-243-3-212というホスト名のレコードがありますが、こちらはAmazon EC2のプライベートIPにもとづいたホスト名だと思われます。start/stopやlaunchの度にIPが変わりますので、パスワードを設定しませんでした。

MySQLのユーザ、パスワードを確認します。

mysql> select user,host,password from mysql.user;
+——+—————–+——————————————-+
| user | host | password |
+——+—————–+——————————————-+
| root | localhost | 任意のパスワード|
| root | ip-10-243-3-212 | |
| root | 127.0.0.1 | 任意のパスワード|
| | localhost | |
| | ip-10-243-3-212 | |
+——+—————–+——————————————-+
5 rows in set (0.00 sec)

パスワードの設定が完了したので、ログインを確認していきます。

[root@ip-10-243-3-212 ec2-user]# mysql -u root
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

[root@ip-10-243-3-212 ec2-user]# mysql -u root -h localhost
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

[root@ip-10-243-3-212 ec2-user]# mysql -u root -h 127.0.0.1
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

これで、パスワードオプション(-p)の指定なしではログインできなくなりました。

MySQLにはデフォルトでtestという名前のデータベースが作成されていますが、不要なので削除します。

登録データベースを確認します

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| test |
+——————–+
3 rows in set (0.00 sec)

testデータベースを削除します

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

再度登録データベースを確認します

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
+——————–+
2 rows in set (0.00 sec)

testデータベースが削除されました。

最後に、サーバ起動時にMySQLも自動的に起動するようにします。

[root@ip-10-243-3-212 ec2-user]# chkconfig mysqld on
[root@ip-10-243-3-212 ec2-user]# chkconfig –list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

ここまでにかかった料金を見てみます。
※ 以下の図は、料金表の抜粋になります。

activity

一番かかっているのがEBSの使用量です。といっても、たいしたことはありませんが。Amazon S3の料金には、今回使用しているInstance以外にも、以前作成したAMIの分が課金されています。常時稼動させているわけではないので、あまり課金されていませんが、サーバ構築がこんなにお安くできてしまうとは!