Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


2.10.1 Unix 類似システムでのインストール後の手順

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 システムユーザーおよびグループの作成を参照してください。

  1. 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 プログラムが含まれます。

  2. 必要に応じて、mysql が配布のコンテンツにアクセスできることを確認します。配布を mysql としてインストールした場合は、追加のアクションは不要です。配布を root としてインストールした場合は、そのコンテンツは root が所有します。インストールディレクトリで次のコマンドを root として実行することで、所有権を mysql に変更します。最初のコマンドはファイルの所有者属性を mysql ユーザーに変更します。2 番目のコマンドはグループ属性を mysql グループに変更します。

    shell> chown -R mysql .
    shell> chgrp -R mysql .
  3. 必要に応じて 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 アカウントのセキュリティー設定」で、初期権限について説明しています。瞬間的に、これらの権限により MySQL root ユーザーはあらゆることを実行可能であり、だれでも test という名前または test_ で始まる名前のデータベースを作成したり使用したりできます。付与テーブルの完全なリストと説明については、セクション6.2「MySQL アクセス権限システム」を参照してください。

    インストールをよりセキュアにするには、mysql_install_db--random-passwords オプションで起動します。これにより、ランダムパスワードが MySQL root アカウントに割り当てられ、これらのアカウントに対して有効期限切れパスワードフラグが設定され、匿名ユーザー MySQL アカウントが削除されます。追加情報についてはセクション4.4.3「mysql_install_db — MySQL データディレクトリの初期化」を参照してください。(Unbreakable Linux Network での RPM を使用したインストール操作は mysql_install_db を使用しないため、影響されません。)

    あとでサーバーを起動したときに、サーバーがデータベースのディレクトリおよびファイルに対して読み取りアクセスおよび書き込みアクセスを持つように、それらが mysql のログインアカウントの所有になっていることを確認しておくことが重要です。これを確認するには、mysql_install_dbroot として実行する場合は、示されるように --user オプションを含めます。そうでない場合は、mysql としてログインしている間にそのスクリプトを実行する必要があります。その場合 --user オプションをコマンドから除外できます。

    test データベースを保持しない場合は、サーバーを起動してから、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」の指示に従って削除できます。

    この段階で mysql_install_db の問題に遭遇した場合、セクション2.10.1.1「mysql_install_db 実行の問題」を参照してください。

  4. ほとんどの MySQL インストールは、必要に応じて root を所有者にできます。例外は、データディレクトリを mysql が所有する必要があることです。これを行うには、次のコマンドをインストールディレクトリで root として実行します。

    shell> chown -R root .
    shell> chown -R mysql data
  5. プラグインディレクトリ (plugin_dir システム変数によって指定されるディレクトリ) が、サーバーによる書き込みが可能な場合、ユーザーが SELECT ... INTO DUMPFILE を使用してそのディレクトリ内のファイルに実行可能なコードを書き込むことができる場合があります。これを防ぐために、plugin_dir をサーバーに対して読み取り専用にしたり、SELECT 書き込みが安全に実行できるディレクトリに --secure-file-priv を設定したりできます。

  6. ソース配布を使用して 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 を自動的に起動および停止する」にあります。

  7. MySQL Server を起動します。

    shell> bin/mysqld_safe --user=mysql &

    MySQL Server を権限のない (非 root) ログインアカウントで起動することが重要です。これを確認するには、mysqld_saferoot として実行する場合は、示されるように --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_dbroot として実行し、--user オプションを使用しなかった場合にも生じます。data ディレクトリを削除して、前述のように mysql_install_db--user オプションを使用して実行します。

    サーバーの起動時にほかの問題が発生した場合には、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照してください。mysqld_safe の詳細は、セクション4.3.2「mysqld_safe — MySQL サーバー起動スクリプト」を参照してください。

  8. 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 オプションで起動します。

  9. サーバーをシャットダウンできることを確認します。

    shell> bin/mysqladmin -u root shutdown
  10. サーバーを再度起動できることを確認します。これは、mysqld_safe を使用するか、あるいは mysqld を直接起動して行います。例:

    shell> bin/mysqld_safe --user=mysql &

    mysqld_safe が失敗する場合は、セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照します。

  11. 簡単なテストをいくつか実行して、サーバーから情報を取り出せることを確認します。その出力は次に示すものと類似しているはずです。

    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_% |      |
    +------+--------+------+
  12. 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-VERSION.i386.rpm の名前の個別のベンチマーク RPM ファイルがあり、その中にはベンチマークのコードおよびデータが含まれています。

    ソース配布の場合には、テストも tests サブディレクトリにあり、実行できます。たとえば、auto_increment.tst を実行するには、このコマンドをソース配布のトップレベルのディレクトリから実行します。

    shell> mysql -vvf test < ./tests/auto_increment.tst

    想定されるテストの結果は ./tests/auto_increment.res ファイルにあります。

  13. この段階では、サーバーが稼働しているはずです。しかし、初期 MySQL アカウントにはいずれもパスワードが設定されておらず、サーバーはテストデータベースへのアクセスを寛容に許可します。セキュリティーを厳しくするには、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」の手順に従ってください。

MySQL 5.6 インストール手順では、mysql データベースにタイムゾーンテーブルが作成されますが、データは移入されません。そのためには、セクション10.6「MySQL Server でのタイムゾーンのサポート」を参照してください。

インストールディレクトリの下の bin ディレクトリにインストールされたプログラムの起動をより便利にするために、そのディレクトリを PATH 環境変数設定に追加できます。それにより、プログラムのパス名全体ではなく名前のみを入力して実行できます。セクション4.2.10「環境変数の設定」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.