Unix 類似システムへの MySQL のインストール後、付与テーブルを初期化してサーバーを起動し、サーバーが満足に機能することを確認する必要があります。サーバーを、システムの起動および停止とともに自動的に起動および停止させることもできます。付与テーブルでアカウントにパスワードの割り当ても行なってください。
Unix 類似システムでは、付与テーブルは mysql_install_db プログラムによってセットアップされます。一部のインストール方法では、既存のデータベースが検出できない場合このプログラムが自動的に実行されます。
RPM 配布を使用して MySQL を Linux にインストールする場合、サーバー RPM が mysql_install_db を実行します。
Debian Linux、Ubuntu Linux、Gentoo Linux などの多くのプラットフォームでは、ネイティブのパッケージングシステムを使用すると、mysql_install_db コマンドが自動的に実行されます。
DMG 配布を使用して MySQL を OS X にインストールする場合、インストーラが mysql_install_db を実行します。
一般的なバイナリおよびソースインストールを含むその他のプラットフォームおよびインストールタイプでは、mysql_install_db を実行する必要があります。
次の手順は、付与テーブルを初期化して (まだ実行されていない場合)、サーバーを起動する方法を説明します。同時に、サーバーへのアクセスおよびサーバーの正常動作のテストに使用できるいくつかのコマンドも示してあります。サーバーの自動起動および停止に関する情報は、セクション2.10.1.2「MySQL を自動的に起動および停止する」を参照してください。
手順を完了してサーバーが実行できたら、mysql_install_db によって作成されたアカウントにパスワードを割り当て、テストデータベースへのアクセスを制限するとよいでしょう。その手順は、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」を参照してください。
次の例では、サーバーは mysql
のログインアカウントのユーザー ID で動作します。これはそのようなアカウントが存在することを前提にしています。存在しない場合は作成するか、あるいはサーバーの実行に使用する計画の別の既存のログインアカウントの名前を代用します。アカウント作成の詳細は、セクション2.2「一般的なバイナリを使用した MySQL の Unix/Linux へのインストール」のmysql
システムユーザーおよびグループの作成を参照してください。
-
MySQL インストールのトップレベルのディレクトリ (ここでは
BASEDIR
で示されます) に場所を変更します。shell> cd BASEDIR
BASEDIR
は、MySQL インスタンスのインストールディレクトリです。それは、/usr/local/mysql
、/usr/local
、または/usr/bin
(MySQL Yum リポジトリまたはその他の方法によるインストールの場合、) などのようになります。次の手順では、このディレクトリに移動していることを前提とします。BASEDIR
ディレクトリにはいくつかのファイルとサブディレクトリがあります。インストールにもっとも重要なものはbin
サブディレクトリおよびscripts
サブディレクトリです。bin
ディレクトリにはクライアントプログラムとサーバーが含まれています。シェルが MySQL プログラムを正しく見つけることができるように、このディレクトリの完全なパス名をPATH
環境変数に追加してください。セクション2.12「環境変数」を参照してください。scripts
ディレクトリには、サーバーアクセス権限を格納する付与テーブルを含むmysql
データベースの初期化に使用される、mysql_install_db プログラムが含まれます。
-
必要に応じて、
mysql
が配布のコンテンツにアクセスできることを確認します。配布をmysql
としてインストールした場合は、追加のアクションは不要です。配布をroot
としてインストールした場合は、そのコンテンツはroot
が所有します。インストールディレクトリで次のコマンドをroot
として実行することで、所有権をmysql
に変更します。最初のコマンドはファイルの所有者属性をmysql
ユーザーに変更します。2 番目のコマンドはグループ属性をmysql
グループに変更します。shell> chown -R mysql . shell> chgrp -R mysql .
-
必要に応じて mysql_install_db プログラムを実行して、ユーザーによるサーバーへの接続許可を決定する権限を含む、初期 MySQL 付与テーブルをセットアップします。これは、インストール手順でこのプログラムが自動的に実行されないような配布タイプを使用した場合には必要になります。
shell> scripts/mysql_install_db --user=mysql
一般的には、mysql_install_db は MySQL を最初にインストールする際にのみ実行する必要があるため、既存のインストールをアップグレードした場合にはこのステップをスキップできます。しかし、mysql_install_db は既存の権限テーブルを上書きしないので、どのような場合でもこれを実行するのが安全でしょう。
mysql_install_db がインストールディレクトリまたはデータディレクトリの正しい場所を特定しない場合は、
--basedir
や--datadir
などのほかのオプションを指定する必要がある場合があります。例:shell> scripts/mysql_install_db --user=mysql \ --basedir=/opt/mysql/mysql \ --datadir=/opt/mysql/mysql/data
mysql_install_db プログラムは、
mysql
を所有者としてサーバーのデータディレクトリを作成します。データディレクトリの下に、付与テーブルを保持するmysql
データベースと MySQL のテストに使用できるtest
データベースが作成されます。そのスクリプトはまた、root
および匿名ユーザーアカウントの権限テーブルのエントリを作成します。これらのアカウントには、最初パスワードがありません。セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」で、初期権限について説明しています。瞬間的に、これらの権限により MySQLroot
ユーザーはあらゆることを実行可能であり、だれでもtest
という名前またはtest_
で始まる名前のデータベースを作成したり使用したりできます。付与テーブルの完全なリストと説明については、セクション6.2「MySQL アクセス権限システム」を参照してください。インストールをよりセキュアにするには、mysql_install_db を
--random-passwords
オプションで起動します。これにより、ランダムパスワードが MySQLroot
アカウントに割り当てられ、これらのアカウントに対して「有効期限切れパスワード」フラグが設定され、匿名ユーザー MySQL アカウントが削除されます。追加情報についてはセクション4.4.3「mysql_install_db — MySQL データディレクトリの初期化」を参照してください。(Unbreakable Linux Network での RPM を使用したインストール操作は mysql_install_db を使用しないため、影響されません。)あとでサーバーを起動したときに、サーバーがデータベースのディレクトリおよびファイルに対して読み取りアクセスおよび書き込みアクセスを持つように、それらが
mysql
のログインアカウントの所有になっていることを確認しておくことが重要です。これを確認するには、mysql_install_db をroot
として実行する場合は、示されるように--user
オプションを含めます。そうでない場合は、mysql
としてログインしている間にそのスクリプトを実行する必要があります。その場合--user
オプションをコマンドから除外できます。test
データベースを保持しない場合は、サーバーを起動してから、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」の指示に従って削除できます。この段階で mysql_install_db の問題に遭遇した場合、セクション2.10.1.1「mysql_install_db 実行の問題」を参照してください。
-
ほとんどの MySQL インストールは、必要に応じて
root
を所有者にできます。例外は、データディレクトリをmysql
が所有する必要があることです。これを行うには、次のコマンドをインストールディレクトリでroot
として実行します。shell> chown -R root . shell> chown -R mysql data
プラグインディレクトリ (
plugin_dir
システム変数によって指定されるディレクトリ) が、サーバーによる書き込みが可能な場合、ユーザーがSELECT ... INTO DUMPFILE
を使用してそのディレクトリ内のファイルに実行可能なコードを書き込むことができる場合があります。これを防ぐために、plugin_dir
をサーバーに対して読み取り専用にしたり、SELECT
書き込みが安全に実行できるディレクトリに--secure-file-priv
を設定したりできます。-
ソース配布を使用して MySQL をインストールした場合、提供される構成ファイルをオプションで
support-files
ディレクトリからご自身の/etc
ディレクトリにコピーするとよいでしょう。さまざまなユースケース、サーバータイプ、および CPU と RAM の構成に対して、さまざまなサンプル構成ファイルがあります。これらの標準ファイルのいずれかを使用する場合、それを/etc/my.cnf
または/etc/mysql/my.cnf
にコピーして、最初に MySQL Server を起動する前に構成を編集してチェックするとよいでしょう。標準構成ファイルのいずれかをコピーしない場合、MySQL Server はデフォルト設定で起動されます。
マシンをブートしたときに MySQL を自動的に起動する場合は、
support-files/mysql.server
をシステムの起動ファイルがある場所にコピーします。詳細情報は、mysql.server
スクリプト自体、およびセクション2.10.1.2「MySQL を自動的に起動および停止する」にあります。 -
MySQL Server を起動します。
shell> bin/mysqld_safe --user=mysql &
MySQL Server を権限のない (非
root
) ログインアカウントで起動することが重要です。これを確認するには、mysqld_safe をroot
として実行する場合は、示されるように--user
オプションを含めます。または、mysql
としてログインしている間にそのスクリプトを実行する必要があります。その場合--user
オプションをコマンドから除外できます。MySQL を権限なしのユーザーとして実行する方法の詳細は、セクション6.1.5「MySQL を通常ユーザーとして実行する方法」を参照してください。
コマンドがただちに失敗して
mysqld ended
を出力する場合は、エラーログ (デフォルトではデータディレクトリ内の
ファイル) で情報を探してください。host_name
.errこの手順に進む前に mysql_install_db を実行して付与テーブルの作成を行わなかった場合は、サーバーの起動時にエラーログファイルに次のメッセージが現れます。
mysqld: Can't find file: 'host.frm'
このエラーは、mysql_install_db を
root
として実行し、--user
オプションを使用しなかった場合にも生じます。data
ディレクトリを削除して、前述のように mysql_install_db を--user
オプションを使用して実行します。サーバーの起動時にほかの問題が発生した場合には、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照してください。mysqld_safe の詳細は、セクション4.3.2「mysqld_safe — MySQL サーバー起動スクリプト」を参照してください。
-
mysqladmin を使用してサーバーが動作していることを確認します。次のコマンドは、サーバーの起動および接続を確認する簡単なテストを提供します。
shell> bin/mysqladmin version shell> bin/mysqladmin variables
mysqladmin version の出力は、プラットフォームおよび MySQL のバージョンによって多少異なりますが、次に示すものに類似します。
shell> bin/mysqladmin version mysqladmin Ver 14.12 Distrib 5.6.23, for pc-linux-gnu on i686 ... Server version 5.6.23 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 &
mysqld_safe が失敗する場合は、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照します。
-
簡単なテストをいくつか実行して、サーバーから情報を取り出せることを確認します。その出力は次に示すものと類似しているはずです。
shell> bin/mysqlshow +--------------------+ | Databases | +--------------------+ | information_schema | | mysql | | test | +--------------------+ shell> bin/mysqlshow mysql Database: mysql +---------------------------+ | Tables | +---------------------------+ | columns_priv | | db | | event | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | plugin | | proc | | procs_priv | | servers | | 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 DBI、およびその他いくつかの Perl モジュールが必要です。DBI DBD::mysql Data::Dumper Data::ShowTable
これらのモジュールは CPAN (http://www.cpan.org/) で入手できます。セクション2.13.1「Unix に Perl をインストールする」も参照してください。
sql-bench/Results
ディレクトリには、さまざまなデータベースおよびプラットフォームでの多くの実行結果が含まれています。すべてのテストを行うには、次のコマンドを実行します。shell> cd sql-bench shell> perl run-all-tests
sql-bench
ディレクトリがない場合は、おそらくソース RPM 以外の RPM ファイルを使用して MySQL をインストールしました。(ソース 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.2「最初の MySQL アカウントのセキュリティー設定」の手順に従ってください。
MySQL 5.6 インストール手順では、mysql
データベースにタイムゾーンテーブルが作成されますが、データは移入されません。そのためには、セクション10.6「MySQL Server でのタイムゾーンのサポート」を参照してください。
インストールディレクトリの下の bin
ディレクトリにインストールされたプログラムの起動をより便利にするために、そのディレクトリを PATH
環境変数設定に追加できます。それにより、プログラムのパス名全体ではなく名前のみを入力して実行できます。セクション4.2.10「環境変数の設定」を参照してください。