2017-09-03 2 views
2

私はinnodb_file_per_tableがtrueで、大部分のデータベースが1つのSSDにあり、1つの巨大なテーブルが別のドライブにあるMySQLデータベースを持っています。個々のテーブルにdata_directoryを設定してmysqlデータベースをクローンすると、クローンテーブルはどこにファイルとして保存されますか?

大部分のファイルは、/ home/that_tableの代わりにテーブルのファイルが格納されるように、テーブルのDATA_DIRECTORYを/ home/that_tableに設定することによって/ var/lib/mysql/database1 /に格納されます。/DATABASE1

私のような何かをデータベース2にDATABASE1のクローンを作成する場合:

クローン化されたデータベースで「that_table」が記憶されるだろう
mysqldump database1 | mysql database2 

私の勘では...それはdata_directoryはディレクティブと一致して/ホーム/ that_table /データベース2にそれを保存するだろうということです

しかし、私はよく分かりません。

答えて

1

はい、カスタムデータディレクトリの各スキーマの新しいサブディレクトリが自動的に作成されます。ここで

はデモです:

mysql> create table test.ddtest (i int) data directory='/tmp/tests'; 
mysql> create database test2; 

$ mysqldump test | mysql test2 

$ sudo ls /tmp/tests 
test test2 
+0

ありがとうございました。誤って私のSSDを埋めるのを救って、いつでも良いサーバーをクラッシュさせるでしょう! (編集:確かに私はあなたがしたことでテストしていたはずですが、ちょっとホー、うまくいけば他人を助けるでしょう) – user7253130

関連する問題