[+/-]
MySQL を Unix にインストールしたら、グラント テーブルを初期化し、サーバを起動し、サーバが期待通りに動作しているか確認します。サーバをシステムの起動、停止と共に自動的に起動あるいは停止させることもできます。グラント テーブルのアカウントにパスワードを割り当てることもできます。
Unix では、グラント テーブルは mysql_install_db プログラムで設定します。インストールの仕方によっては、このプログラムを自動的に実行することができます。
MySQL を Linux に RPM ディストリビューションを使用してインストールする場合、サーバの RPM が mysql_install_db を実行します。
MySQL を Mac OS X に PKG ディストリビューションを使用してインストールする場合、インストーラが mysql_install_db を実行します。
そうでない場合は、ご自身で mysql_install_db を実行します。
以下のプロシージャではグラント テーブルの初期化 (初期化されていない場合)、次にサーバの起動手順について説明します。同時にサーバへのアクセスおよびサーバの正常動作をテストする幾つかのコマンドも示してあります。サーバの自動による起動および停止に関する情報は、項2.10.2.2. 「MySQL を自動的に起動・停止する」 を参照してください。
プロシージャを完了してサーバを動作させたら、mysql_install_db で作成したアカウントにパスワードを割り当てます。その手順は、項2.10.3. 「最初の MySQL アカウントの確保」 にあります。
以下の例では、サーバはmysql
のログイン アカウントのユーザーID
で動作します。これはそのようなアカウントが存在することを前提にしています。アカウントがない場合アカウントを作成するか、あるいはサーバの稼動に使用する別の既存のログイン
アカウントで置き換えます。
ロケーションを MySQL
の最上段のディレクトリに変更すると、ここでは
BASEDIR
になります。
shell> cd BASEDIR
BASEDIR
は
/usr/local/mysql
あるいは
/usr/local
のようなものです。.以下のステップはユーザーがこのディレクトリにあるものとの前提に基づいたものです。
必要に応じて mysql_install_db プログラムを実行して、ユーザーのサーバ接続へのアクセス方法を決定する権限を含む最初の MySQL グラント テーブルを設定します。インストールのプロシージャではそのプログラムが起動しないディストリビューションを使用している場合にこの手順が必要です。
一般的には、mysql_install_db はMySQL を最初にインストールする際にのみ実行する必要があるので、既存のインストールをアップグレードした場合にはこのステップをスキップできます。しかし、mysql_install_db は既存の権限テーブルを上書きしないので、どの環境でもこれを実行するのが安全かも知れません。
グラント
テーブルを初期化するには、mysql_install_db
が bin
にあるかあるいは
scripts
ディレクトリにあるかによって以下のコマンドのいずれかを使用します。
shell>bin/mysql_install_db --user=mysql
shell>scripts/mysql_install_db --user=mysql
mysql_install_db
のスクリプトはサーバのデータ
ディレクトリを作成します。サーバのディレクトリはすべてのデータベース権限および
MySQL のテストに使用する test
データベースを保持する mysql
データベースのディレクトリを作成します。そのスクリプトはまた
root
および匿名ユーザーアカウントの権限テーブルのエントリを作成します。それらのアカウントには最初はパスワードはありません。最初の権限に関する説明は
項2.10.3. 「最初の MySQL アカウントの確保」
にあります。これらの権限では一時的に、MySQL
root
ユーザーが何かをしたり、誰でも
test
名の下にデータベースを作成して使用したり、あるいは
test_
名で動作できるようになっています。
あとでサーバを起動した時にサーバがそれらのアクセスを読んだり書いたりできるようにデータベースのディレクトリおよびファイルが
mysql
のログイン
アカウントの所有になっていることを確認しておくことが重要です。これを確認するには、--user
オプションは mysql_install_db を
root
として実行する際に以下のように使用される必要があります。または、mysql
としてログインする際にそのスクリプトを実行する必要があります。その場合
--user
オプションをコマンドから除外できます。
mysql_install_db
は幾つかのテーブルを mysql
データベースに作成します。その中には
user
、db
、host
、tables_priv
、columns_priv
、func
、およびその他が含まれます。これらのテーブルの完全なリストおよびその説明は、項4.7. 「MySQL アクセス権限システム」
を参照してください。
test
データベースが必要ない場合には、サーバの起動後に
mysqladmin -u root drop test
でそれを削除できます。
この段階で mysql_install_db で問題に遭遇した場合、項2.10.2.1. 「mysql_install_db 実行中の問題」 を参照してください。
MySQL サーバを起動する
shell> bin/mysqld_safe --user=mysql &
MySQL サーバを権限のない
(非root
) ログイン
アカウントで起動することが重要です。これを確認するには、--user
オプションは mysql_safe
をシステム root
として実行する際以下のように使用される必要があります。または、mysql
としてログインする際にそのスクリプトを実行する必要があります。その場合
--user
オプションをコマンドから除外できます。
MySQL を権限のないユーザーとして動作させるための詳細は 項4.6.5. 「ユーザによる MySQL の実行」 にあります。
このステップに進む前にグラント テーブルを作成しなかった場合には、サーバを起動すると以下のメッセージがエラーのログ ライルに表示されます。
mysqld: Can't find file: 'host.frm'
サーバの起動時に他の問題が発生した場合には、項2.10.2.3. 「MySQL サーバの起動とトラブルシューティング」 を参照してください。
mysqladmin を使用してサーバが動作していることを確認します。以下のコマンドにはサーバの起動および接続をチェックする簡単なテストが含まれています。
shell>bin/mysqladmin version
shell>bin/mysqladmin variables
mysqladmin version の出力はプラットフォームおよび MySQL のバージョンによって多少異なりますが以下に類似します。
shell> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 5.1.15-beta, for pc-linux-gnu on i686
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 5.1.15-beta-Max
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 14 days 5 hours 5 min 21 sec
Threads: 1 Questions: 366 Slow queries: 0
Opens: 0 Flush tables: 1 Open tables: 19
Queries per second avg: 0.000
mysqladmin
の他に機能については、それを
--help
オプションで起動します。
shell> bin/mysqladmin -u root shutdown
サーバを再度起動できるか確認します。mysqld_safe を使用するかあるいはmysqld 直接実行して起動を確認します。例えば、
shell> bin/mysqld_safe --user=mysql --log &
mysqld_safe が失敗したら、項2.10.2.3. 「MySQL サーバの起動とトラブルシューティング」 を参照します。
簡単なテストをしてサーバから情報を取り出せるか確認します。その出力は以下に示すものと類似しているはずです。
shell>bin/mysqlshow
+-----------+ | Databases | +-----------+ | mysql | | test | +-----------+ shell>bin/mysqlshow mysql
Database: mysql +---------------------------+ | Tables | +---------------------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | proc | | procs_priv | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ shell>bin/mysql -e "SELECT Host,Db,User FROM db" mysql
+------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
sql-bench
ディレクトリ (MySQL
インストール ディレクトリ) に MySQL
の異なるプラットフォームでの違いを比較したベンチマーク
スイートがあります。ベンチマーク
スイートは Perl
で書かれています。それには様々なデータベース、および他の幾つかの
Perl
モジュールへのデータベース非依存型インターフェースを提供する
Perl DBI が必要です。
DBI DBD::mysql Data::Dumper Data::ShowTable
これらのモジュールは CPAN (http://www.cpan.org/) で入手できます。項2.15.1. 「Unix に Perl をインストールする」 も参照してください。
sql-bench/Results
ディレクトリには異なるデータベースおよびプラットフォームでの多くの動作結果が含まれています。すべてのテストを行うには、以下のコマンドを実行します。
shell>cd sql-bench
shell>perl run-all-tests
sql-bench
ディレクトリがない場合、多分 MySQL を
ソースの RPM ではない RPM
ファイルからインストールしています。(ソースの
RPM には sql-bench
ベンチマーク
ディレクトリが含まれています。.)この場合、それを使用する前に最初にベンチマーク
スイートをインストール必要があります。mysql-bench-
の名前の個別のベンチマーク RPM
ファイルがあり、その中にはベンチマークのコードおよびデータが含まれています。
VERSION
-i386.rpm
ソースのディストリビューションの場合には、実行できるテストも
tests
サブディレクトリにあります。例えば、auto_increment.tst
を実行するには、このコマンドをソース
ディストリビューションの最上段のディレクトリから実行します。
shell> mysql -vvf test < ./tests/auto_increment.tst
テストの予想結果は
./tests/auto_increment.res
ファイルにあります。
この段階では、サーバが稼動していなければなりません。しかし、最初の MySQL アカウントにはどれもパスワードがないため、項2.10.3. 「最初の MySQL アカウントの確保」 の手順に従ってパスワードを割り当てる必要があります。
MySQL 5.1 のインストール
プロシージャが mysql
データベースでタイム ゾーン
テーブルを作成します。しかし、テーブルは
項4.10.8. 「MySQL サーバのタイム ゾーン サポート」
の手順に従って手動で構成する必要があります。