MySQL の導入
最近、MovableTypeやWordPressやその他のウェブアプリでよく見かけるMySQLのインストール&設定方法をさらっとご紹介いたします。
ページ内コンテンツ一覧
yum コマンドを利用してMySQLサーバのインストールを行います。# yum -y install mysql-server
設定ファイルをエディタで開き、初期設定を行います。
この際、使用目的のシステムの文字コードを確認することをお勧めします。
MovableType での利用をお考えなら、UTF-8 が最適です。
# vi /etc/my.cnf
以下の内容を編集します。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set = utf8 ← 追加(MySQLサーバーの文字コードをUTF-8にする) [mysql.server] user=mysql basedir=/var/lib [mysqld_safe] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 以下を最下部に追加(MySQLクライアントのデフォルトの文字コードをUTF-8に固定します) [mysql] default-character-set = utf8
編集ができたら保存して終了します。
それでは MySQLの起動を行います。
# /etc/rc.d/init.d/mysqld start
MySQL データベースを初期化中: [ OK ]
MySQL を起動中: [ OK ]
システム起動時に MySQL が起動するように設定しておきましょう。
# chkconfig mysqld on
# chkconfig --list mysqld ← 設定の確認を行います。
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL に root ユーザでログインします。
# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 4.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>select host,user,password from mysql.user; ← 登録済みユーザの確認 +-----------+------+----------+ | host | user | password | +-----------+------+----------+ | localhost | root | | | example | root | | ← 「example」はお使いのサーバのホスト名が表示されます。 | example | | | | localhost | | | +-----------+------+----------+ 4 rows in set (0.00 sec) mysql>set password for root@localhost=password('rootユーザのパスワード'); ← ホスト名がlocalhostのrootユーザにパスワード設定 Query OK, 0 rows affected (0.00 sec) mysql>set password for root@'example'=password('rootユーザのパスワード'); ← ホスト名「example」のrootユーザにパスワード設定 Query OK, 0 rows affected (0.00 sec) mysql>delete from mysql.user where user=""; ← 匿名ユーザの削除 Query OK, 2 rows affected (0.00 sec) ユーザ情報の確認 mysql> select host,user,password from mysql.user; +-----------+------+------------------+ | host | user | password | +-----------+------+------------------+ | localhost | root | **************** | ← password 欄に注目 | proliant | root | **************** | ← password 欄に注目 +-----------+------+------------------+ ← 匿名ユーザが削除されていることに注目 2 rows in set (0.00 sec) mysql> \q ← MySQLからログアウト Bye
root ユーザがパスワードなしでログインできないことを確認
# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ← エラーで弾かれる
パスワードありでログインできることを確認
# mysql -u root -p
Enter password: ← パスワードを入力
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
テスト用にデータベースを作成し、MySQLの動作を確認してみましょう。
# mysql -u root -p ← rootでログイン Enter password: ← パスワードを入力 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 4.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>create database sample; ← 「sample」という名のデータベースを作成 Query OK, 1 row affected (0.00 sec) mysql>show databases; ← データベースの一覧を表示 +----------+ | Database | +----------+ | mysql | | sample | ← 「sample」データベースの作成を確認 | test | +----------+ 3 rows in set (0.00 sec) mysql> use sample ← 「sample」データベースを使いますよ、の意 Database changed mysql> CREATE TABLE sample_tbl ( No integer, Name varchar(20)); ← 「sample_tbl」という名のテーブルを作成 Query OK, 0 rows affected (0.07 sec) mysql> show tables; ← テーブルの中身を表示 +------------------+ | Tables_in_sample | +------------------+ | sample_tbl | ← 「sample_tbl」テーブルの作成を確認 +------------------+ 1 row in set (0.00 sec) mysql> INSERT INTO sample_tbl(No,Name) VALUES(1,'GODZILLA'); ← 適当なデータを INSERT してみます Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO sample_tbl(No,Name) VALUES(2,'ゴジラ'); ← 適当な日本語のデータを INSERT してみます Query OK, 1 row affected (0.00 sec) mysql> select * from sample_tbl; ← 「sample_tbl」テーブルの中身を全表示 +------+-----------+ | No | Name | +------+-----------+ | 1 | GODZILLA | | 2 | ゴジラ | ← 日本語もオッケーなことを確認しておきましょう +------+-----------+ 2 rows in set (0.00 sec) mysql> \q ← ログアウト Bye
このテストで日本語がちゃんと扱えるかどうかを確認することはとても重要です。
もしウェブアプリを作成し、日本語データが化けた時に問題点の切り分けが容易になりますからね。
これでMySQLの動作確認は完了です。
サンプルで作成したデータベースはこのまま練習で使うのならそのままに、使わないのならDROPしておきましょう。