26.3. MySQL の起動と停止

MySQL を手動で開始/停止する方法、および MySQL の起動後に最低限必要となる基本設定について解説します。MySQL のデーモン mysqld は、/etc/init.d/mysqld スクリプトに以下のオプションを指定することにより制御することができます。

表 26-1. 制御スクリプトオプション

オプション操作
startmysqld デーモンを起動します。
stopmysqld デーモンを停止します。
restartmysqld デーモンを再起動します。
statusmysqld デーモンの起動状況を確認します。
condrestartmysqld デーモンが動作しているかを確認後、再起動します。(/var/lock/subsys/mysqld が存在するとき再起動します。)

MySQL を起動するには、以下のコマンドを実行します。

# /etc/init.d/mysqld start

MySQL を停止するには、以下のコマンドを実行します。

# /etc/init.d/mysqld stop

Turbolinux 11 Server 起動時に MySQL を自動的に開始するには、以下のように chkconfig コマンドを実行しておきます。

# chkconfig mysqld on

MySQL の初回起動時には、mysql_install_db コマンドを実行しデータベースを作成し必要な初期設定を行います。Turbolinux 11 Server では、デーモンの実行に必要な mysql というユーザーが自動的に登録されています。

これにより、標準では /var/lib/mysql/ ディレクトリ以下に mysql データベースが作成され、多くのテーブルに権限が設定されます。他にもテスト用の TEST データベースなどが作成されます。また、 mysql_install_db を実行した root ユーザーのみがデータベースユーザーとして登録されており、mysql データベースに対しすべての権限を持ちます。しかし、注意しなければならないのは、初期状態で root に対しパスワードが設定されていない点です。すぐにパスワードを設定します。

注意

初期状態では、すべてのユーザーがパスワードの入力なしに root ユーザーとして管理権限を持つユーザーして MySQL サーバーにアクセスできてしまいます。すぐにパスワードを設定してください。

注意

Linuxシステムにおけるユーザーと MySQL のデータベースユーザーは、まったく別のユーザーであり、区別されていますので注意してください。

26.3.1. データベースへ接続と root ユーザーのパスワード設定

MySQL 起動後、次のように実行し root ユーザーでデータベースに接続します。パスワードの設定がありませんのでそのまま接続できてしまいます。セキュリティ面を考慮しすぐにパスワードを設定しましょう。

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.45 Source distribution

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

mysql>

上記のように表示された場合は正常にデータベースに接続されています。mysql> に続けて次のように入力しパスワードを設定します。new_pass には設定するパスワードを host_name にはサーバーのホスト名を指定してください。リモートホストやローカルホストそれぞれから接続時にパスワードを使用するように次のように SET PASSWORD 文を複数実行します。

mysql> SET PASSWORD FOR 'root'@'localhost' = 
          PASSWORD('new_pass');
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'root'@'host_name' = 
          PASSWORD('new_pass');
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = 
          PASSWORD('new_pass');
Query OK, 0 rows affected (0.00 sec)

host_name は次のように実行し確認できます。

mysql> SELECT Host, User FROM mysql.user;
+--------------------+------+
| Host               | User |
+--------------------+------+
| 127.0.0.1          | root |
| localhost          | root |
| server.example.com | root |
+--------------------+------+
3 rows in set (0.00 sec)

設定が完了したら次のように入力をして mysql を終了します。

mysql> \q
Bye

次回からは mysql および 他の管理コマンド実行時にも設定をしたパスワードの入力が必要になります。“-p”オプションを指定しないと接続に失敗します。

# mysql -u root -pnew_pass
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.0.45 Source distribution

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

mysql>

ティップ

“-p”オプションのみを指定しパスワードを省略した場合はプロンプトからパスワード入力を要求されます。

新規データベースユーザーの登録やデータベースの作成は、root ユーザーでデータベースに接続して行います。また、管理権限を持つユーザーを新規に作成することも可能です。

これで、MySQL を使用するための準備が整いました。データベースの作成を開始することができます。