データベースサーバー構築(MySQL)

ホームへ戻る

更新日:06/7/12


データベースサーバーは、サーバー上のデータベースをクライアントから操作できるようにするためのサーバー。
ここでは、リレーショナル型データベースのデータベースサーバーであるMySQLを使用する。

MySQLインストール <<TOP

[root@server ~]# yum -y install mysql-server ← mysql-serverインストール

MySQL設定 <<TOP

[root@server ~]# vi /etc/my.cnf ← MySQL設定ファイル編集

[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クライアントの文字コードをUTF-8にする)
[mysql] default-character-set = utf8
MySQL起動 <<TOP

[root@server ~]# /etc/rc.d/init.d/mysqld start ← MySQL起動

MySQL を起動中:                                            [  OK  ]

[root@server ~]# chkconfig mysqld on ← MySQL自動起動設定

[root@server ~]# chkconfig --list mysqld ← MySQL自動起動設定確認  
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off ← ランレベル2〜5のonを確認
MySQLデータベース初期設定 <<TOP

@rootユーザへのパスワード設定
MySQLの管理ユーザであるrootユーザ(システムのrootユーザとは別)にはデフォルトではパスワードが設定されていないため、パスワードを設定する

[root@server ~]# mysql -u root ← MySQLサーバーへrootユーザでログイン
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認

+------+-----------------------+----------+  
| user | host                  | password |  
+------+-----------------------+----------+  
| root | localhost             |          | ← 接続元ホストがlocalhostのrootユーザにパスワードが設定されていない  
| root | server.arisonsvr.org  |          | ← 接続元ホストが自ホストのrootユーザにパスワードが設定されていない  
|      | localhost             |          |  
|      | server.arisonsvr.org  |          |  
+------+-----------------------+----------+  
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@'server.arisonsvr.org'=password('rootパスワード'); ← 接続元ホストが自ホストのrootユーザにパスワード設定
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password from mysql.user; ← 登録済ユーザ、パスワード確認
+------+-----------------------+------------------+
| user | host                  | password         |
+------+-----------------------+------------------+
| root | localhost             | **************** | ← 接続元ホストがlocalhostのrootユーザにパスワードが設定された
| root | server.arisonsvr.org  | **************** | ← 接続元ホストが自ホストのrootユーザにパスワードが設定された
|      | localhost             |                  |
|      | server.arisonsvr.org  |                  |
+------+-----------------------+------------------+
4 rows in set (0.00 sec)

mysql> exit ← MySQLサーバーからログアウト
Bye

[root@server ~]# mysql -u root -h server.arisonsvr.org -prootパスワード← 接続元ホストが自ホストのrootユーザでパスワードありでMySQLサーバーへログインできることを確認
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 39 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit ← MySQLサーバーからログアウト
Bye

A匿名ユーザ削除
MySQLには匿名ユーザ(ユーザ名が空白でパスワードが設定されていないユーザ)がデフォルトで登録されており、ユーザ名とパスワードなしでMySQLサーバーへログインできてしまうため、安全のためにこのユーザを削除する

[root@server ~]# mysql -u root -prootパスワード ← rootユーザでMySQLサーバーへログイン
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host from mysql.user; ← 登録ユーザ確認
+------+----------------------+
| user | host                 |
+------+----------------------+
| root | server.arisonsvr.org |
|      | server.arisonsvr.org |
| root | localhost            |
|      | localhost            |
+------+----------------------+
4 rows in set (0.00 sec)

mysql> delete from mysql.user where user=''; ← 匿名ユーザ削除
Query OK, 2 rows affected (0.01 sec)

mysql> select user,host from mysql.user; ← 登録ユーザ確認
+------+----------------------+
| user | host                 |
+------+----------------------+
| root | server.arisonsvr.org |
| root | localhost            |
+------+----------------------+
2 rows in set (0.00 sec)

mysql> exit ← ログアウト
Bye

Btestデータベース削除
MySQLにはデフォルトでtestという空のデータベースが登録されているが、不要のため、このデータベースを削除する

[root@linux ~]# mysql -u root -prootパスワード ← rootユーザでMySQLサーバーへログイン
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> show databases; ← 登録データベース確認
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> drop database test; ← testデータベース削除
Query OK, 0 rows affected (0.00 sec)

mysql> show databases; ← 登録データベース確認
+----------+
| Database |
+----------+
| mysql    |
+----------+
1 row in set (0.00 sec)

mysql> exit ← ログアウト
Bye
  <<TOP