無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 2 MySQL のインストールと更新 :: 2.10 インストール後の設定とテスト :: 2.10.2 Unix のインストール後のプロシージャ
« 2.10.1 Windows のインストール後のプロシージャ

2.10.2.1 mysql_install_db 実行中の問題 »
Section Navigation      [Toggle]
  • 2.10 インストール後の設定とテスト
  • 2.10.1 Windows のインストール後のプロシージャ
  • 2.10.2 Unix のインストール後のプロシージャ
    • 2.10.2.1 mysql_install_db 実行中の問題
    • 2.10.2.2 MySQL を自動的に起動・停止する
    • 2.10.2.3 MySQL サーバの起動とトラブルシューティング
  • 2.10.3 最初の MySQL アカウントの確保

2.10.2. Unix のインストール後のプロシージャ

[+/-]

2.10.2.1. mysql_install_db 実行中の問題
2.10.2.2. MySQL を自動的に起動・停止する
2.10.2.3. MySQL サーバの起動とトラブルシューティング

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 で動作します。これはそのようなアカウントが存在することを前提にしています。アカウントがない場合アカウントを作成するか、あるいはサーバの稼動に使用する別の既存のログイン アカウントで置き換えます。

  1. ロケーションを MySQL の最上段のディレクトリに変更すると、ここでは BASEDIR になります。

    shell> cd BASEDIR
    

    BASEDIR は /usr/local/mysql あるいは /usr/local のようなものです。.以下のステップはユーザーがこのディレクトリにあるものとの前提に基づいたものです。

  2. 必要に応じて 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 実行中の問題」 を参照してください。

  3. 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 サーバの起動とトラブルシューティング」 を参照してください。

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

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

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

    shell> bin/mysqld_safe --user=mysql --log &
    

    mysqld_safe が失敗したら、項2.10.2.3. 「MySQL サーバの起動とトラブルシューティング」 を参照します。

  7. 簡単なテストをしてサーバから情報を取り出せるか確認します。その出力は以下に示すものと類似しているはずです。

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

    ソースのディストリビューションの場合には、実行できるテストも tests サブディレクトリにあります。例えば、auto_increment.tst を実行するには、このコマンドをソース ディストリビューションの最上段のディレクトリから実行します。

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

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

  9. この段階では、サーバが稼動していなければなりません。しかし、最初の MySQL アカウントにはどれもパスワードがないため、項2.10.3. 「最初の MySQL アカウントの確保」 の手順に従ってパスワードを割り当てる必要があります。

MySQL 5.1 のインストール プロシージャが mysql データベースでタイム ゾーン テーブルを作成します。しかし、テーブルは 項4.10.8. 「MySQL サーバのタイム ゾーン サポート」 の手順に従って手動で構成する必要があります。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.