[+/-]
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.11.2.2. 「MySQL を自動的に起動・停止する」 を参照してください。
プロシージャーを完了してサーバーを動作させたら、mysql_install_db で作成したアカウントにパスワードを割り当てます。その手順は、項2.11.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
がインストールディレクトリまたはデータディレクトリの正しいロケーションを使用しない場合は、--basedir
や --datadir
などのほかのオプションを指定する必要がある場合があります。例
:
shell>bin/mysql_install_db --user=mysql \
--basedir=/opt/mysql/mysql \
--datadir=/opt/mysql/mysql/data
mysql_install_db
のスクリプトはサーバーのデータディレクトリを作成します。サーバーのディレクトリはすべてのデータベース権限および
MySQL のテストに使用する
test
データベースを保持する
mysql
データベースのディレクトリを作成します。そのスクリプトはまた
root
および匿名ユーザーアカウントの権限テーブルのエントリを作成します。それらのアカウントには最初はパスワードはありません。最初の権限に関する説明は
項2.11.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
、およびその他が含まれます。これらのテーブルの完全なリストおよびその説明は、The MySQL Access Privilege System
を参照してください。
test
データベースが必要ない場合には、サーバーの起動後に
mysqladmin -u root drop
test でそれを削除できます。
この段階で mysql_install_db で問題に遭遇した場合、項2.11.2.1. 「mysql_install_db 実行中の問題」 を参照してください。
MySQL サーバーを起動する
shell> bin/mysqld_safe --user=mysql &
MySQL サーバーを権限のない (非
root
)
ログインアカウントで起動することが重要です。これを確認するには、--user
オプションは
mysqld_safe
をシステム root
として実行する際以下のように使用される必要があります。または、mysql
としてログインする際にそのスクリプトを実行する必要があります。その場合
--user
オプションをコマンドから除外できます。
MySQL を権限のないユーザーとして動作させるための詳細は How to Run MySQL as a Normal User にあります。
このステップに進む前にグラントテーブルを作成しなかった場合には、サーバーを起動すると以下のメッセージがエラーのログライルに表示されます。
mysqld: Can't find file: 'host.frm'
サーバーの起動時にほかの問題が発生した場合には、項2.11.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.47, for pc-linux-gnu on i686
...
Server version 5.1.47
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.11.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.11.3. 「最初の MySQL アカウントの確保」 の手順に従ってパスワードを割り当てる必要があります。
MySQL 5.1 のインストール手順により
mysql
データベースにタイムゾーンテーブルが作成されます。しかし、テーブルは
MySQL Server Time Zone Support
の手順に従って手動で構成する必要があります。