MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.5 InnoDB ストレージ エンジン :: 13.5.5 InnoDB テーブルスペースを作成する
« 13.5.4 InnoDB 起動オプションとシステム変数

13.5.5.1 InnoDB 初期化問題の扱い »
Section Navigation      [Toggle]
  • 13.5 InnoDB ストレージ エンジン
  • 13.5.1 InnoDB 概要
  • 13.5.2 InnoDB 連絡先情報
  • 13.5.3 InnoDB 設定
  • 13.5.4 InnoDB 起動オプションとシステム変数
  • 13.5.5 InnoDB テーブルスペースを作成する
    • 13.5.5.1 InnoDB 初期化問題の扱い
  • 13.5.6 InnoDB テーブルの作成と利用
  • 13.5.7 InnoDB データとログ ファイルの追加と削除
  • 13.5.8 InnoDB データベースのバックアップと復旧
  • 13.5.9 InnoDB データベースを別のマシンに移動する
  • 13.5.10 InnoDB トランザクション モデルとロック
  • 13.5.11 InnoDB パフォーマンス チューニング ヒント
  • 13.5.12 マルチバージョンの実装
  • 13.5.13 InnoDB テーブルとインデックス構造
  • 13.5.14 InnoDB ファイル領域の管理とディスク I/O
  • 13.5.15 InnoDB エラー処理
  • 13.5.16 InnoDB テーブル上の制約
  • 13.5.17 InnoDB トラブルシューティング

13.5.5. InnoDB テーブルスペースを作成する

[+/-]

13.5.5.1. InnoDB 初期化問題の扱い

必要な InnoDB 設定パラメータを含む事ができるように、MySQLをインストールし、オプション ファイルを編集したと仮定してください。MySQL を起動する前に、InnoDB データ ファイルとログ ファイルの為に指定したディレクトリが存在する事、そしてMySQL サーバがそれらのディレクトリにアクセスする権利がある事を確認しなければいけません。 InnoDB はファイルだけを作成し、ディレクトリは作成しません。データとログ ファイルの領域が充分である事も確認してください。

InnoDB が有効な状態でサーバを初めて起動する時には、MySQL サーバ mysqld は mysqld_safe ラッパからや、Windows サービスとしてではなく、コマンド プロンプトから起動させるのが一番良いです。コマンド プロンプトから起動する時、mysqld が何をプリントするか、また何が起こっているかが分かります。Unix 上では、ただ mysqld を呼び出して下さい。Windows 上では、--console オプションを利用してください。

オプション ファイル内で初めて InnoDB を設定した後 MySQL サーバを起動する時、InnoDB はデータ ファイルとログ ファイルを作成し、次のような物をプリントします:

InnoDB: The first specified datafile /home/heikki/data/ibdata1
did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file /home/heikki/data/ibdata1 size to 134217728
InnoDB: Database physically writes the file full: wait...
InnoDB: datafile /home/heikki/data/ibdata2 did not exist:
new to be created
InnoDB: Setting file /home/heikki/data/ibdata2 size to 262144000
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file /home/heikki/data/logs/ib_logfile0 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile0 size
to 5242880
InnoDB: Log file /home/heikki/data/logs/ib_logfile1 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile1 size
to 5242880
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
InnoDB: Started
mysqld: ready for connections

この時点で InnoDB はテーブルスペースとログ ファイルを初期化しました。mysql のように、通常の MySQL クライアント プログラムを利用して MySQL サーバに接続する事ができます。MySQL サーバを mysqladmin shutdown を利用して終了する時、アウトプットは次のようになります:

010321 18:33:34  mysqld: Normal shutdown
010321 18:33:34  mysqld: Shutdown Complete
InnoDB: Starting shutdown...
InnoDB: Shutdown completed

データ ファイルとログ ディレクトリを見ると、そこに作成されたファイルを確認する事ができます。MySQL が再起動する時、データ ファイルとログ ファイルは既に作成されているので、アウトプットはさらにブリーフな物になっています:

InnoDB: Started
mysqld: ready for connections

もし innodb_file_per_table オプションを my.cnf に追加すると、InnoDB は、.frm ファイルが作成されたのと同じ MySQL データベース ディレクトリ内の .ibdファイル内に各テーブルを格納します。詳しくは 項13.5.3.1. 「Per-Table テーブルスペースを利用する」 を参照してください。

Copyright © 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