MySQL をインストールしたら(バイナリディストリビューションまたはソースディストリビューションから)、権限テーブルを初期化して、サーバを起動し、サーバが正常に動作することを確認する必要があります。システムの起動時およびシャットダウン時にサーバが自動的に起動および停止するように設定することもできます。
ソースディストリビューションからインストールする場合は、通常、以下のように権限テーブルをインストールしてサーバを起動します。
shell>./scripts/mysql_install_db
shell>cd mysql_installation_directory
shell>./bin/mysqld_safe --user=mysql &
バイナリディストリビューション(RPM パッケージまたは pkg パッケージ)の場合は、以下を実行します。
shell>cd mysql_installation_directory
shell>./scripts/mysql_install_db
shell>./bin/mysqld_safe --user=mysql &
mysql_install_db
スクリプトは、すべての権限を管理する
mysql
データベースと、MySQL
のテストに使用できる test
データベースを作成します。さらに、mysql_install_db
を実行するユーザと root
ユーザの権限エントリも作成します。これらのエントリはパスワードなしで作成されます。
mysqld_safe
スクリプトは、mysqld
サーバを起動します(バージョン 4.0 より前の
MySQL
を使用している場合は、mysqld_safe
ではなく safe_mysqld
を使用します)。
mysql_install_db
は、古い権限テーブルを上書きしないので、どのような状況で実行しても安全です。test
データベースが必要ない場合は、サーバを起動した後に
mysqladmin -u root drop test
を使用してこのデータベースを削除することができます。
テストは、MySQL
ディストリビューションの最上位ディレクトリから簡単に実行できます。バイナリディストリビューションの場合、最上位ディレクトリはインストールディレクトリです(通常は
/usr/local/mysql
など)。ソースディストリビューションの場合は、最上位ディレクトリは
MySQL ソースツリーのメインディレクトリです。
以下の各項に示されるコマンドでは、BINDIR
は mysqladmin
や
mysqld_safe
などのプログラムがインストールされている場所のパスを表します。バイナリディストリビューションの場合、BINDIR
はディストリビューション内の
bin
ディレクトリです。ソースディストリビューションの場合、configure
を実行したときに /usr/local
以外のインストールディレクトリを指定していない限り、BINDIR
は通常は /usr/local/bin
です。
EXECDIR
は、mysqld
サーバがインストールされている場所です。バイナリディストリビューションの場合、これは
BINDIR
と同じです。ソースディストリビューションの場合、EXECDIR
は通常は /usr/local/libexec
です。
必要に応じて、mysqld
サーバを起動して、MySQL
権限テーブルを初期化する。これは、通常
mysql_install_db
スクリプトを使用して行う。
shell> scripts/mysql_install_db
MySQL 権限テーブルには、MySQL サーバに接続できるユーザのホストや権限の情報が記録されている。
一般に、mysql_install_db
は、初めて MySQL
をインストールしたときにのみ実行する必要がある。したがって、既存のインストールをアップグレードする場合は、このステップはスキップできる(ただし、mysql_install_db
は使用しても非常に安全で、既存のテーブルを更新することはないので、判断がつかない場合は
mysql_install_db
を実行してかまわない)。
mysql_install_db
は、mysql
データベースに 6
つのテーブル(user
、db
、host
、tables_priv
、columns_priv
、および
func
)を作成する。初期権限の説明については、項4.4.4. 「MySQL 権限の初期設定」
を参照。
簡単に説明すると、初期権限は、MySQL
root
ユーザにあらゆる操作を許可し、全ユーザに
test
という名前か、test_
で始まる名前を持つデータベースを作成または使用する許可を与える。
権限テーブルを設定しないと、サーバを起動したときにログファイルに以下のエラーが記録される。
mysqld: Can't find file: 'host.frm'
MySQL
バイナリディストリビューションの場合にも、./bin/mysqld_safe
を実行して MySQL
を起動しないとこのエラーが発生する。 See
項4.8.2. 「mysqld_safe
(mysqld
のラッパ)」。
mysql_install_db
は、Unix
root
アカウントで実行する必要があることがある。
ただし、必要に応じて、データベースディレクトリ内のファイルに対して読み取りと書き込みのアクセス権がある一般のアカウント(root
以外の Unix のアカウント)で、 MySQL
サーバを実行することもできる。一般のアカウントで
MySQL
を実行する手順については、項A.3.2. 「一般ユーザで MySQL を実行する方法」を参照。
mysql_install_db
で問題が発生する場合は、項2.4.1. 「mysql_install_db
の実行に関する問題」
を参照。
MySQL ディストリビューションで提供される
mysql_install_db
スクリプトを実行する代わりに行えるいくつかの手段がある。
mysql_install_db
を実行する前に、このスクリプトを編集して、権限テーブルにインストールされている初期の権限を変更することができる。スクリプトの変更により、同じ権限を持つ複数のマシンに
MySQL
をインストールする場合に便利である。この場合、通常は、mysql.user
テーブルと mysql.db
テーブルにいくつかの INSERT
ステートメントを追加するだけで済む。
権限テーブルをインストールした後にテーブルの内容を変更する場合は、mysql_install_db
を実行して、mysql -u root mysql
を使用して MySQL root
ユーザとして権限テーブルに接続し、SQL
ステートメントを発行して権限テーブルを直接修正する。
作成済みの権限テーブルを完全に作成し直すことができる。テーブルをすでにインストールしており、mysql_install_db
を編集した後に作成し直す場合に、これを行う必要がある。
これらの代替手段の詳細については、項4.4.4. 「MySQL 権限の初期設定」 を参照。
以下のように MySQL サーバを起動する。
shell>cd mysql_installation_directory
shell>bin/mysqld_safe &
バージョン 4.0 より前の MySQL
を使用している場合は、最後のコマンドの
bin/mysqld_safe
を
bin/safe_mysqld
に置き換える。
サーバの起動時に問題が発生した場合は、項2.4.2. 「MySQL サーバの起動に関する問題」 を参照。
mysqladmin
を使用して、サーバが稼動していることを確認する。以下のコマンドによって、サーバが稼動しており接続に応答していることをチェックするための簡単なテストが実行される。
shell>BINDIR/mysqladmin version
shell>BINDIR/mysqladmin variables
mysqladmin version
からの出力は、使用しているプラットフォームと
MySQL
のバージョンによって少し異なるが、以下に示したものと類似した内容となる。
shell> BINDIR/mysqladmin version
mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license.
Server version 3.23.32-debug
Protocol version 10
Connection Localhost via Unix socket
TCP port 3306
UNIX socket /tmp/mysql.sock
Uptime: 16 sec
Threads: 1 Questions: 9 Slow queries: 0
Opens: 7 Flush tables: 2 Open tables: 0
Queries per second avg: 0.000
Memory in use: 132K Max memory used: 16773K
BINDIR/mysqladmin
を使用するとほかにどのようなことが行えるのかを把握するには、--help
オプションを指定して起動する。
shell> BINDIR/mysqladmin -u root shutdown
サーバを再起動できるかどうかを確認します。この確認は、mysqld_safe
を使用するか、直接 mysqld
を起動して行う。以下に例を示す。
shell> BINDIR/mysqld_safe --log &
mysqld_safe
が失敗した場合は、MySQL
のインストールディレクトリから実行する(インストールディレクトリ以外のディレクトリに移動している場合)。それでも失敗する場合は、項2.4.2. 「MySQL サーバの起動に関する問題」
を参照。
いくつかの簡単なテストを実行して、サーバが稼動していることを確認する。 出力は、以下に示すものと類似した内容になる。
shell>BINDIR/mysqlshow
+-----------+ | Databases | +-----------+ | mysql | +-----------+ shell>BINDIR/mysqlshow mysql
Database: mysql +--------------+ | Tables | +--------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +--------------+ shell>BINDIR/mysql -e "SELECT host,db,user FROM db" mysql
+------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
また、sql-bench
ディレクトリ(MySQL
インストールディレクトリの下)に、ベンチマークスィートがある。このベンチマークスィートを使用すると、各種のプラットフォーム上での
MySQL
の動作を比較できる。ベンチマークスィートは、Perl
で記述されており、Perl DBI
モジュールを使用してデータベースに依存しないインタフェースを各種のデータベースに提供する。ベンチマークスィートを実行するには、以下の追加の
Perl モジュールが必要である。
DBI DBD-mysql Data-Dumper Data-ShowTable
これらのモジュールは、CPAN(http://www.cpan.org/)から入手できる。 See 項2.7.1. 「Unix への Perl のインストール」。
sql-bench/Results
ディレクトリには、さまざまなデータベースやプラットフォームのベンチマークスィートの実行結果が含まれている。すべてのテストを実行するには、以下のコマンドを実行する。
shell>cd sql-bench
shell>run-all-tests
sql-bench
ディレクトリがない場合は、バイナリディストリビューション用の
RPM
を使用している可能性がある(ソースディストリビューションの
RPM
にはベンチマークディレクトリが含まれている)。その場合、ベンチマークスィートを使用するには、最初にベンチマークスィートをインストールする必要がある。MySQL
バージョン 3.22
以降では、ベンチマークのコードとデータが含まれた
mysql-bench-VERSION-i386.rpm
という名前のベンチマーク RPM
ファイルがある。
ソースディストリビューションを使用している場合は、tests
サブディレクトリにあるテストを実行することもできる。たとえば、auto_increment.tst
を実行するには、以下のコマンドを実行する。
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
結果は、./tests/auto_increment.res
ファイルに出力される。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.