当我克隆一个 mysql 数据库,并在各个表上设置 data_directory 时,克隆的表作为文件存储在哪里?
When I clone a mysql database, with data_directory set on individual tables, where do the cloned tables get stored as files?
所以我有一个 MySQL 数据库,innodb_file_per_table 是真的,大部分数据库在一个 SSD 中,一个巨大的 table 在一个单独的驱动器上。
大部分文件存储在 /var/lib/mysql/database1/ 但通过在 table 上设置 DATA_DIRECTORY(设置为 /home/that_table),这样 table 的文件存储在 /home/that_table/database1
如果我用类似的东西将 database1 克隆到 database2:
mysqldump database1 | mysql database2
克隆数据库中的 "that_table" 存储在哪里?
我的预感是它会匹配 data_directory 指令并将其存储到 /home/that_table/database2...
但我不确定。
是的,它会自动为您的自定义数据目录下的每个模式创建一个新的子目录。
这是一个演示:
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
所以我有一个 MySQL 数据库,innodb_file_per_table 是真的,大部分数据库在一个 SSD 中,一个巨大的 table 在一个单独的驱动器上。
大部分文件存储在 /var/lib/mysql/database1/ 但通过在 table 上设置 DATA_DIRECTORY(设置为 /home/that_table),这样 table 的文件存储在 /home/that_table/database1
如果我用类似的东西将 database1 克隆到 database2:
mysqldump database1 | mysql database2
克隆数据库中的 "that_table" 存储在哪里?
我的预感是它会匹配 data_directory 指令并将其存储到 /home/that_table/database2...
但我不确定。
是的,它会自动为您的自定义数据目录下的每个模式创建一个新的子目录。
这是一个演示:
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