Amazon Web Service EC2のLinuxインスタンスへMySQLをインストールする手順

aws-ec2-mysql-install

以前の記事で、EC2環境へのapacheとphpまでインストールが終わりました。

AWS
aws-ec2-httpd-install-top
AWS EC2のLinuxインスタンスへApacheをインストールしてサイトを公開する

前回の記事でAmazon Web Service (以下AWS)のEC2にRedhat Enterprise Linux (ver6.4/x64)のインスタンスを稼働させるところまで紹介しました。せっかくの評価環境ですので評価してなんぼ。ま ...

AWS
aws-ec2-php-install
Amazon Web Service EC2のLinuxインスタンスへPHPをインストールする

前回の記事では、ec2上のRedhat Enterprise Linux(以下、RHEL)へapache(httpd)をインストールして公開してみました。 今回はその続きとして、前回作成した環境へPHPをインストールしてみます。PHPのバー ...

後はデータベースをインストールして、基本的な設定を完了するとWordPressが利用できます。今回はその一歩前、データベースとしてMySQLをインストールしてみます。自前のサーバーでウェブアプリケーションが動作する環境を作成すると、いざ障害があった場合にもトラブルシュートが容易になります。またApacheを仮想サイトが動作するように設定することで、複数のサイトの公開もできます。テスト環境なども作ることができますので、やはり自前のサーバーでWordPressを動かすのがおすすめです。

1. MySQLインストール手順

前回と同じく、今回もパッケージを利用してインストールを行います。
チューニングや、細かいインストールオプションを利用する場合はソースからのコンパイル・インストールもいいんですが、目標はwordpressを使うことですので、ここではあまり手を掛けずに、インストールしていきます。インストールに使うコマンドはおなじみのyum。

1-1. インストールするパッケージ名の確認

MySQLもphpと同じように複数のパッケージがあります。まずはインストールするパッケージを確認します。
コマンドを入力して、MySQLの関連パッケージの一覧を確認してみます。

# yum search mysql
====================== N/S Matched: mysql ======================
MySQL-python.x86_64 : An interface to MySQL
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
bacula-director-mysql.x86_64 : Bacula Director with MySQL database support
bacula-storage-mysql.x86_64 : MySQL Bacula storage daemon files
dovecot-mysql.x86_64 : MySQL back end for dovecot
freeradius-mysql.x86_64 : MySQL support for freeradius
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a MySQL database
mysql.x86_64 : MySQL client programs and shared libraries
mysql-bench.x86_64 : MySQL benchmark scripts and data
mysql-connector-java.x86_64 : Official JDBC driver for MySQL
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
mysql-devel.i686 : Files for development of MySQL applications
mysql-devel.x86_64 : Files for development of MySQL applications
mysql-embedded.i686 : MySQL as an embeddable library
mysql-embedded.x86_64 : MySQL as an embeddable library
mysql-embedded-devel.i686 : Development files for MySQL as an embeddable library
mysql-embedded-devel.x86_64 : Development files for MySQL as an embeddable library
mysql-libs.i686 : The shared libraries required for MySQL clients
mysql-libs.x86_64 : The shared libraries required for MySQL clients
mysql-server.x86_64 : The MySQL server and related files
mysql-test.x86_64 : The test suite distributed with MySQL
perl-DBD-MySQL.x86_64 : A MySQL interface for perl
php-mysql.x86_64 : A module for PHP applications that use MySQL databases
qt-mysql.i686 : MySQL driver for Qt's SQL classes
qt-mysql.x86_64 : MySQL driver for Qt's SQL classes
qt3-MySQL.i686 : MySQL drivers for Qt 3's SQL classes
qt3-MySQL.x86_64 : MySQL drivers for Qt 3's SQL classes
rsyslog-mysql.x86_64 : MySQL support for rsyslog

これまた多いんですが、全てインストールする必要はありません。
表示されたMySQL関連パッケージから必要だと思われるものをインストールしていきます。
今回はphpに関連するモジュールと、MySQL本体、開発ツールをインストールします。
具体的なパッケージ名は

  • mysql-server (データベースサーバ本体)
  • mysql-devel (データベース開発ツール)
  • mysql-libs (データベースライブラリ群)
  • php-mysql (PHP用モジュール)

です。

1-2. MySQLのインストール

インストールするパッケージ名が確認できましたので、インストールを実行します。
yumコマンドでインストールを行います。

[root@www_test ~]# yum -y install mysql-server mysql-devel mysql-libs php-mysql
Loaded plugins: amazon-id, rhui-lb, security
Setting up Install Process
Package mysql-libs-5.1.69-1.el6_4.x86_64 already installed and latest version
Package php-mysql-5.3.3-23.el6_4.x86_64 already installed and latest version
(中略)
Installed:
mysql-devel.x86_64 0:5.1.69-1.el6_4 mysql-server.x86_64 0:5.1.69-1.el6_4

Dependency Installed:
keyutils-libs-devel.x86_64 0:1.4-4.el6 krb5-devel.x86_64 0:1.10.3-10.el6_4.6
libcom_err-devel.x86_64 0:1.41.12-14.el6_4.4 libselinux-devel.x86_64 0:2.0.94-5.3.el6_4.1
libsepol-devel.x86_64 0:2.0.41-4.el6 mysql.x86_64 0:5.1.69-1.el6_4
openssl-devel.x86_64 0:1.0.0-27.el6_4.2 perl-DBD-MySQL.x86_64 0:4.013-3.el6
zlib-devel.x86_64 0:1.2.3-29.el6

Dependency Updated:
e2fsprogs.x86_64 0:1.41.12-14.el6_4.4 e2fsprogs-libs.x86_64 0:1.41.12-14.el6_4.4
krb5-libs.x86_64 0:1.10.3-10.el6_4.6 krb5-workstation.x86_64 0:1.10.3-10.el6_4.6
libcom_err.x86_64 0:1.41.12-14.el6_4.4 libss.x86_64 0:1.41.12-14.el6_4.4

Complete!

Complete!と表示されれば、インストールは完了です。
パッケージでのインストールは本当に手軽です。

2. インストール後の確認

MySQLパッケージが正常にインストールされているかを確認します。
rpmコマンドでmysqlのパッケージが表示されれば、正常にインストールは完了しています。

[root@www_test ~]# rpm -qa | grep mysql
php-mysql-5.3.3-23.el6_4.x86_64
mysql-5.1.69-1.el6_4.x86_64
mysql-server-5.1.69-1.el6_4.x86_64
mysql-devel-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64

3. MySQLの起動

パッケージが表示され、インストールが確認できたら、MySQLサーバを起動します。
起動用スクリプト(/etc/init.d/mysqld)が自動で作成されていますので、これを使って起動します。

[root@www_test ~]# /etc/init.d/mysqld start
Initializing MySQL database: WARNING: The host 'www_test' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h www_test password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

[ OK ]
Starting mysqld: [ OK ]

Starting mysqld OKと表示されればmysqlは起動しています。
ちょっと警告が表示されていますが、ホスト名の名前引きができないという内容です。
ここでは無視しても大丈夫です。運用時までには修正が必要です。
起動後、プロセスが起動していること、TCPポートが待ち受けしていることを確認します。

3-1. プロセスの確認

[root@www_test ~]# ps -aux | grep mysql
root 19034 0.0 0.2 106096 1444 pts/0 S 03:05 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 19136 0.2 3.5 367524 21608 pts/0 Sl 03:05 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

mysqld~がコマンドの結果として表示されれば、プロセスは起動しています。

3-2. ポートの確認

# netstat -naplt | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19136/mysqld

3306が表示されれば、ポートの待ち受け確認は完了です。

4. データベース管理者のパスワード変更

最低限のセキュリティとしてデーターベース管理者のパスワードを変更します。

# mysqladmin -u root password 'newpassword'

newpasswordの部分に任意のパスワードを設定します。
出来る限り複雑なパスワードを設定することをお勧めします。
パスワードが設定できるとプロンプトへ戻ります。
先ほど設定したパスワード使って、データベースへのログインを確認します。

# mysql -u root -p
Enter password:

Enter password:にパスワードを入力します。入力してもパスワードは表示されません。
認証が通ると、以下のメッセージが表示されます。

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.69 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

データベースを確認します。

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

作成されているデータベースが表示されます。
wordpressをインストールするときは、ここに専用のデータベースとユーザーを作成します。
ログインができることが目的ですので、ここまでできれば、データベースの操作から抜けます。

mysql> quit
Bye

通常のプロンプト# に戻ります。
MySQLはこれでインストールが完了です。
ここまでで、LAMP (linux,apache,MySQL,php)環境ができました。
次回はwordpressをインストールする前に行っておく、基本的な設定について紹介したいと思います。
あとちょっとですね。

  • この記事を書いた人
rem-profile-photo

レムシステム

レムシステムはPC・サーバー・ネットワークでの業務効率化を主な業務としている会社です。全国に対応しています。

-AWS
-