[+/-]
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=mysqlshell>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 versionshell>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 mysqlDatabase: 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-benchshell>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
        の手順に従って手動で構成する必要があります。
      

