誰かがこれに遭遇した場合にこの投稿を更新するために、バージョン5.6以降、InnoDBはデータディレクトリをサポートするようになりました。シンボリックリンクなし(非推奨)で、*nixとWindowsの両方で機能します。
要件:
- MySQL5.6以降
- innodb_file_per_tableが有効になっています
innodb_file_per_table = 1
シナリオ1(新しいテーブルを作成):
テーブルの作成時にDATADIRECTORYオプションを指定するのと同じくらい簡単です。
-
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';
シナリオ2(既存のテーブルを別のディスクに移動する):
これにはさらにいくつかの手順が含まれます(MySQLサーバーの再起動が必要です)が、それでもかなり簡単です。また、テーブルの作成時にDATADIRECTORYオプションを指定する必要はありません。
- MySQLサーバーを停止します
- innodbテーブルを移動しますtable_name .ibdファイルを単純なファイルコピー/ファイル移動でディスク/ボリュームを分離する
- 拡張子が.islのテキストファイルを作成します。例: table_name .isl
- .islファイルを編集し、 table_nameへの新しいパスを入力します 移動した.ibdファイル。
/alternative/directory/table_name.ibd
- 古いパスの元の.ibdファイルが削除されていることを確認してください
- MySQLサーバーを起動します
これで、移動されたテーブルへのその後の変更は、新しいパスの.ibdファイルに保存されます。
参考までに、MySQLの公式ドキュメントを参照してください: http:// dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html