在我的环境中,我使用的引擎是:innodb。

需求:
我需要将不同的表的数据文件存放在不同的数据目录下,而不是【datadir】所指定的单一路径下。

实现:
首先,创建需要的目录结构,后面会用到:

上面的目录:【mysql1 / mysql2 / mysql3】在这里只是样例,在另一些场景中,可能是来自于不同的存储介质挂载出来的目录,进而实现将数据存放在不同性能的磁盘上的目的。

创建测试库:

查看下当前的数据目录:

可以看到,当前数据都位于:/data/mysql/data

看一下:

参数【innodb_file_per_table】

将表创建到和【datadir】不一样的目录中:

看看目录的状态:

而默认路径的状态:

可以看到,数据只在指定的全新目录里面。

——————
改变表的存储目录。

先看看目标路径的状态:

开始修改:

查看目录状态:

可以看到,表的data directory在创建的时候指定了,就无法被移动了。

看看当前数据库的版本:

当前版本:【5.7.22】

换成版本:【8.0.12】

再试试:

MySQL操作:

依旧不行。

重新编译,… 开启debugging:【-DWITH_DEBUG=1】

然后,再次跑MySQL就不一样了:

这样就可以看到那些表是单独指定了【data directory】的。
但是,更具体的配置,… 暂时还不知道怎么看。

——————————————————
Done。

打赏

1
说点什么

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Adamhuan Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
提醒