mysql_install_db スクリプトの目的は新しい MySQL 権限テーブルを生成することです。それは既存の MySQL 権限テーブルを上書きしないので、他のデータに影響を及ぼすことはありません。
          権限のテーブルを再度作成するには、稼動している
          mysqld
          サーバを停止します。次にデータ
          ディレクトリの mysql
          ディレクトリの名前を変更して保存し、次に
          mysql_install_db
          を実行します。.お客様の現在のディレクトリが
          MySQL のインストール ディレクトリで
          mysql_install_db が
          bin
          ディレクトリにあり、データ
          ディレクトリ名が data
          のであるとします。mysql
          データベースの名前を変更し
          mysql_install_db
          を実行するには、以下のコマンドを使用します。
        
shell>mv data/mysql data/mysql.oldshell>bin/mysql_install_db --user=mysql
mysql_install_db を実行すると、以下の問題が発生する場合があります。
mysql_install_db によるグラント テーブルのインストールの失敗
mysql_install_db がグラント テーブルのインストールに失敗し以下のメッセージの表示後に終了する場合があります。
Starting mysqld daemon with databases from XXXXXX mysqld ended
              この場合、エラーのログ
              ファイルを非常に慎重に調べる必要があります。ログ
              ファイルはエラーメッセージの名前が付いてディレクトリXXXXXX
              に格納され、mysqld
              が起動しなかった理由が示されます。どんな問題が発生したか分からない場合、バグ
              レポートをポストする時にログを一緒に送ります。項1.7. 「質問またはバグの報告」
              参照。
            
mysqld プロセスが実行されている
これはサーバが稼動していることを示しています。この場合グラント テーブルは多分既に作成されています。その場合、mysql_install_db を起動する必要はまったくありません。なぜなら、それは一度だけ起動する必要があるからです (最初に MySQL をインストールした場合)。
1 台のサーバの起動中に 2 番目の mysqld サーバのインストールはできません。
これは既存の MySQL のインストールがあり、異なるロケーションに新たにインストールを行う場合に起こります。例えば、量産(実稼働中)インストールが既にあり、テスト目的に 2 番目のインストールを希望される場合です。一般的に 2 番目のサーバを起動しようとした時に起こる問題は 2 台目のサーバが 1 台目のサーバが使用しているネットワーク インターフェースを使用しようとした場合に発生します。この場合、以下のエラーメッセージのいずれかが表示されます。
Can't start server: Bind on TCP/IP port: Address already in use Can't start server: Bind on unix socket...
複数のサーバの設定に関する説明は、項4.12. 「同じマシン上での複数 MySQL サーバの実行」 参照してください。
              
              
              
              あなたには
              /tmp
              ディレクトリへの書き込みアクセスがありません
            
              一時ファイル作成の書き込みアクセスがない場合あるいは
              Unix ソケット
              ファイルがデフォルトのロケーション (
              /tmp ディレクトリ)
              にない場合に、mysql_install_db
              を実行したり mysqld
              サーバを起動するとエラーが発生します。
            
              一時ディレクトリまたは Unix のソケット
              ファイルに mysql_install_db
              あるいは mysqld
              を起動する前に以下のコマンドを実行して別のロケーションを指定できます。そこではsome_tmp_dir
              は許可を書いたディレクトリへのフルのパス名です。
            
shell>TMPDIR=/shell>some_tmp_dir/MYSQL_UNIX_PORT=/shell>some_tmp_dir/mysql.sockexport TMPDIR MYSQL_UNIX_PORT
次に mysql_install_db を起動し以下のコマンドでサーバを起動します。
shell>bin/mysql_install_db --user=mysqlshell>bin/mysqld_safe --user=mysql &
              If mysql_install_db が
              scripts
              ディレクトリにある場合には、最初のコマンドを
              scripts/mysql_install_db
              に変更します。
            
項B.1.4.5. 「How to Protect or Change the MySQL Unix Socket File」、および 項2.14. 「環境変数」 参照。
MySQL で提供された mysql_install_db スクリプトを実行する幾つかの代案があります。
              最初の権限を標準のデフォルトと別にしたい場合、それを実行する前にmysql_install_db
              を変更します。しかし、GRANT
              および REVOKE をグラント
              テーブルを設定した後に
              使用して権限を変更することが好ましい。換言すると、mysql_install_db
              を起動し、次に mysql -u root
              mysql を使用してサーバに MySQL
              root
              ユーザーとして接続します。これで必要な
              GRANT および
              REVOKE
              ステートメントを発行できます。
            
              同じ権限で複数のマシンに MySQL
              をインストールする場合、GRANT
              および REVOKE
              ステートメントを一つのファイルに入れ、そのファイルを
              mysql
              を使用してスクリプトとして
              mysql_install_db
              を起動後に実行します。.例えば、
            
shell>bin/mysql_install_db --user=mysqlshell>bin/mysql -u root < your_script_file
このようにすることで、各マシンでステートメントを手動で発行する必要がなくなります。
              グラント
              テーブルを作成した後に再度完全に作成できます。これらは
              MySQL_install_db を起動後に
              GRANT および
              REVOKE
              の使用の仕方を学ぶためにを色々変更を加えその後にテーブルからそれらをの変更を削除して起動する再に必要になります。
            
              グラント
              テーブルを再度作成するには、mysql
              データベース ディレクトリにあるすべての
              .frm、.MYI、および
              .MYD
              ファイルのすべて削除します。次に
              mysql_install_db
              スクリプトを再度実行します。
            
              mysqld を
              --skip-grant-tables
              オプションを使用して手動で起動してmysql
              を使用してご自身で権限情報を追加することができます。
            
shell>bin/mysqld_safe --user=mysql --skip-grant-tables &shell>bin/mysql mysql
mysql から、mysql_install_db の SQL コマンドを手動で実行できます。mysqladmin flush-privileges あるいは mysqladmin reload を後で実行してグラント テーブルをリロードするようサーバに指定します。
mysql_install_db を使用しなかった場合は、グラント テーブルを手動で作成しなければならないのみならず、それらを最初に作成しなければなりません。

