当我克隆一个mysql数据库时,在各个表上设置了data_directory,克隆表在哪里存储为文件?

时间:2017-09-03 18:15:51

标签: mysql linux innodb

所以我有一个带有innodb_file_per_table的MySQL数据库,一个SSD中的大部分数据库,以及一个单独驱动器上的一个巨大的表。

大多数文件存储在/ var / lib / mysql / database1 /中,但是通过在表上设置DATA_DIRECTORY(设置为/ home / that_table),使得该表的文件存储在/ home / that_table /中数据库1

如果我使用类似的东西将database1克隆到database2:

mysqldump database1 | mysql database2

克隆数据库中的“that_table”将存储在哪里?

我的预感是它会匹配data_directory指令并将其存储到/ home / that_table / database2 ......

但我不确定。

1 个答案:

答案 0 :(得分: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