Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  mysql_install_db — MySQL データディレクトリの初期化

4.4.3 mysql_install_db — MySQL データディレクトリの初期化

mysql_install_db は MySQL データディレクトリを初期化し、システムテーブルを作成します (システムテーブルがない場合)。また、InnoDB テーブルの管理に必要な、システムのテーブルスペースおよび関係するデータ構造体も初期化します。MySQL 5.6.8 では、mysql_install_db は Perl スクリプトで、Perl がインストールされた任意のシステムで使用できます。5.6.8 より前ではシェルスクリプトで、Unix プラットフォームでのみ使用可能です。

MySQL 5.6.8 以降では、mysql_install_db は UNIX プラットフォーム上で、my.cnf という名前のデフォルトオプションファイルを基本インストールディレクトリに作成します。このファイルは my-default.cnf という名前の配布パッケージに含まれるテンプレートから作成されます。テンプレートは基本インストールディレクトリ内またはその配下から見つけることができます。mysqld_safe を使用して開始すると、サーバーはデフォルトで my.cnf ファイルを使用します。my.cnf がすでに存在する場合、mysql_install_db はそのファイルが使用中だと認識し、my-new.cnf という名前の新しいファイルを代わりに書き込みます。

1 つの例外を除き、デフォルトのオプションファイル内の設定はコメント化されて無効になっています。例外は、このファイルが sql_mode システム変数を NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES に変更することです。この設定により、トランザクションテーブルを変更する操作での不良データに対して警告でなくエラーを発生させるサーバー構成が提供されます。セクション5.1.7「サーバー SQL モード」を参照してください。

mysql_install_db を呼び出すには、次の構文を使用します。

shell> mysql_install_db [options]

MySQL サーバー mysqld があとで起動されるとき、データディレクトリにアクセスしなければならないため、mysqld の起動に使用するのと同じシステムアカウントから mysql_install_db を起動するか、または root として実行し、--user オプションを指定して mysqld を実行するユーザー名を指示します。mysql_install_db がインストールディレクトリまたはデータディレクトリの正しい場所を使用しない場合は、--basedir または --datadir などの、ほかのオプションを指定しなければならない場合があります。例:

shell> scripts/mysql_install_db --user=mysql \
         --basedir=/opt/mysql/mysql \
         --datadir=/opt/mysql/mysql/data
注記

mysql_install_dbInnoDB システムテーブルスペース をセットアップしたあと、テーブルスペースの特性を変更するにはまったく新しいインスタンスをセットアップする必要があります。これには、システムテーブルスペース内の最初のファイル名および undo ログの数が含まれます。デフォルト値を使用しない場合は、mysql_install_db を実行する前に、innodb_data_file_path および innodb_log_file_size の各構成パラメータの設定が MySQL 構成ファイル内で適切な場所にあることを確認してください。また、 innodb_data_home_dir および innodb_log_group_home_dir などの、InnoDB ファイルの作成および場所に影響するその他のパラメータを、必要に応じて指定してください。

これらのオプションが構成ファイルにあるが、そのファイルが MySQL がデフォルトで読み取る場所にない場合は、mysql_install_db の実行時に --defaults-extra-file オプションを使用してファイルの場所を指定します。

注記

インストールを実行する際にカスタムの TMPDIR 環境変数を設定し、指定されたディレクトリにアクセスできない場合、mysql_install_db は失敗する場合があります。その場合は、TMPDIR の設定を取り消すか、または TMPDIR をシステムの一時ディレクトリ (通常 /tmp) を指すように設定します。

mysql_install_db は次のオプションをサポートします。これらはコマンド行またはオプションファイルの [mysql_install_db] グループで指定できます。(mysqld に共通なオプションは、[mysqld] グループにも指定できます。)その他のオプションは mysqld に渡されます。MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.6「オプションファイルの使用」を参照してください。

表 4.2 mysql_install_db オプション

形式 説明 導入 非推奨
--basedir ベースディレクトリへのパス    
--builddir ビルドディレクトリへのパス (ソースからのビルドで)    
--cross-bootstrap 内部使用    
--datadir データディレクトリへのパス    
--defaults-extra-file 通常のオプションファイルに加えてオプションファイルを読み取る    
--defaults-file 指名されたオプションファイルのみを読み取る    
--force DNS が機能しない場合でも実行    
--help ヘルプメッセージを表示して終了    
--keep-my-cnf 既存の my.cnf file を保持し、新規に作成しない 5.6.20 5.6.20
--ldata --datadir のシノニム    
--no-defaults オプションファイルを読み取らない    
--random-passwords 管理アカウントにランダムパスワードを生成 5.6.8  
--rpm 内部使用    
--skip-name-resolve 付与テーブルにホスト名ではなく IP アドレスを使用    
--srcdir 内部使用    
--user mysqld を実行するシステムログインユーザー    
--verbose 冗長モード    
--windows 内部使用    

  • --help

    ヘルプメッセージを表示して終了します。

  • --basedir=path

    MySQL インストールディレクトリへのパス。

  • --builddir=path

    --srcdir およびソースからのビルドとともに使用します。これは、ビルドされたファイルがあるディレクトリの場所にセットします。

  • --cross-bootstrap

    内部使用。このオプションは、あるホスト用のシステムテーブルを別のホストでビルドするために使用されます。

  • --datadir=path

    MySQL データディレクトリへのパス。MySQL 5.6.8 以降、mysql_install_db はオプション値に関してより厳密になりました。パスが存在しない場合は、パス名の最後のコンポーネントのみが作成されます。親ディレクトリはすでに存在する必要があります。存在しない場合はエラーが発生します。

  • --defaults-extra-file=file_name

    このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。

  • --defaults-file=file_name

    指定されたオプションファイルのみ使用します。ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。

  • --force

    DNS が機能しない場合でも mysql_install_db を実行します。通常ホスト名を使用して作成される付与テーブルエントリが、代わりに IP アドレスを使用します。

  • --keep-my-cnf

    mysql_install_db に対し、既存の my.cnf ファイルがあれば、新しいデフォルトの my.cnf ファイルを作成せずに既存のものを維持するように指示します。このオプションは MySQL 5.6.20 で追加されました。

  • --ldata=path

    --datadir のシノニム。

  • --no-defaults

    オプションファイルを読み取りません。オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、--no-defaults を使用して、オプションを読み取らないようにすることができます。

  • --random-passwords

    Unix プラットフォームで、このオプションはよりセキュアな MySQL インストールを提供します。mysql_install_db--random-passwords で起動すると、通常の動作に加えて次のアクションを実行するようになります。

    • インストールプロセスはランダムなパスワードを作成して、それを初期 MySQL root アカウントに割り当て、これらのアカウントに対して有効期限切れパスワードフラグを設定します。

    • 初期のランダムな root パスワードは、HOME 環境変数によって指定されるディレクトリの .mysql_secret ファイルに書き込まれます。オペレーティングシステムによっては、sudo などのコマンドを使用するとHOME の値が root システムユーザーのホームディレクトリを参照するようになる場合があります。

      .mysql_secret がすでに存在する場合は、新しいパスワード情報はそれに追加されます。各パスワードエントリにはタイムスタンプが含まれるため、複数のインストール操作の場合に、それぞれに関連するパスワードを判断できます。

      .mysql_secret は、作成対象のシステムユーザーのみがアクセスできるように、モード 600 で作成されます。

    • 匿名ユーザー MySQL アカウントは作成されません。

    これらのアクションの結果、インストール後、サーバーを起動して .mysql_secret ファイルに書き込まれたパスワードを使用して root として接続し、新しい root パスワードを指定することが必要です。これを行うまで、root はそれ以外何もできません。これは、使用するすべての root アカウントについて実行する必要があります。パスワードを変更するには、SET PASSWORD ステートメントを (たとえば mysql クライアントとともに) 使用します。mysqladmin または mysql_secure_installation も使用できます。

    (アップグレードではなく) 新しい RPM インストール操作は、mysql_install_db--random-passwords オプションで起動します。(Unbreakable Linux Network での RPM を使用したインストール操作は mysql_install_db を使用しないため、影響されません。)

    MySQL 5.6.9 では、(アップグレードではなく) 新しい Solaris PKG インストール操作は、mysql_install_db--random-passwords オプションで起動します。

    バイナリの .tar.gz 配布またはソース配布を使用するインストール操作では、mysql_install_db--random-passwords オプションで手動で起動して、MySQL インストールをよりセキュアにできます。これは、機密データのあるサイトでは特に推奨されます。

    このオプションは MySQL 5.6.8 で追加されました。

  • --rpm

    内部使用。このオプションは、RPM パッケージを使用して実行されるインストール操作で、MySQL のインストールプロセス中に使用されます。

  • --skip-name-resolve

    付与テーブルのエントリ作成時にホスト名ではなく IP アドレスを使用します。このオプションは、DNS が機能しない場合に便利です。

  • --srcdir=path

    内部使用。このオプションは、mysql_install_db がエラーメッセージファイルおよびヘルプテーブルの移入用ファイルなどのサポートファイルを検索するディレクトリを指定します。

  • --user=user_name

    mysqld を実行する際に使用するシステム (ログイン) ユーザー名。mysqld によって作成されるファイルおよびディレクトリは、このユーザーが所有します。このオプションを使用するには、システム root ユーザーでなければなりません。デフォルトでは、mysqld は現在のログイン名を使用して稼働し、作成されるファイルおよびディレクトリはそのユーザーの所有となります。

  • --verbose

    冗長モード。プログラムの動作についてより多くの情報を出力します。

  • --windows

    内部使用。このオプションは、Windows 配布の作成に使用されます。


User Comments
  Posted by Jack Daniels on July 28, 2006
If you suspect permission problems and but find all file and
directory permissions in place and ok then selinux must be
giving the problem. I know because I ran into it.

Try disabling selinux (by running system-config-securitylevel
on fedora core 3 which i have) and retry. It things work out
then fine tune selinux for your system

  Posted by Ed Lazor on December 2, 2009
Ubuntu 9.10
Moving the database from /var/lib/mysql to /data/databases/mysql

You'll get errors when running mysql_install_db until you go into /etc/apparmor.d, update the usr.sbin.mysql file, and run /etc/init.d/apparmor restart

You may also get an error when running /etc/init.d/mysql start:

Access denied for user debian-sys-maint at localhost

Check /etc/mysql/debian.cnf for the account information.

You'll need to run mysql, add the grant tables, and then restart mysql.
Sign Up Login You must be logged in to post a comment.