14.5.1 InnoDB テーブルスペースの作成

MySQL をインストールし、必要な InnoDB 構成パラメータが含まれるようにオプションファイルを編集したと仮定します。MySQL を起動する前に、InnoDB のデータファイルおよびログファイルに指定したディレクトリが存在し、MySQL サーバーがそれらのディレクトリへのアクセス権を持っていることを確認します。InnoDB はファイルだけを作成し、ディレクトリは作成しません。データファイルおよびログファイル用のディスク領域が十分にあることもチェックします。

InnoDB が有効になっている状態でサーバーをはじめて起動するときの最適な方法は、MySQL サーバー mysqldmysqld_safe からでも、Windows サービスとしてでもなく、コマンドプロンプトから実行することです。コマンドプロンプトから実行すると、mysqld で出力される内容および発生している事象が表示されます。Unix では、単に mysqld を呼び出すだけです。Windows では、出力先がコンソールウィンドウになるように、--console オプションを付けて mysqld を起動します。

オプションファイル内ではじめて 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 サーバーに接続できます。mysqladmin shutdown を使用して MySQL サーバーをシャットダウンすると、次のように出力されます。

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 ファイルに格納されます。セクション14.5.2「InnoDB File-Per-Table モード」を参照してください。


User Comments
  Posted by Bill del Solar on August 31, 2005
To get InnoDB to work on mysqld 4.1.14 and Fedora Core 3 on a 30 GByte, LVM (logical volume manager) raw partition whose pathname is /dev/VolGroupXX/LogVolYY, both innodb_data_home_dir and innodb_data_file_path must be set "correctly" in configuration file /etc/my.cnf.

Set "innodb_data_home_dir = /dev/VolGroupXX".

To initialize the raw partition, set "innodb_data_file_path = LogVolYY:30Gnewraw". "new" is synonymous with clobber or initialize; so, use it _only_ to initialize a raw partition. Start mysqld, wait until the raw partition's initialization is complete, and stop mysqld.

Once the server is stopped, set "innodb_data_file_path = LogVolYY:30Graw".
Sign Up Login You must be logged in to post a comment.