我有以下设置:
datadir = /var/db/mysql/data
innodb_data_home_dir = /var/db/mysql/innodb
innodb_file_per_table = ON我的目的是将无害的数据存储在/var/db/mysql/innodb中,但它仍然存储在/var/db/mysql/data/database_name/下。我希望我的设置能够实现我想要的行为,如https://mariadb.com/kb/en/innodb-file-per-table-tablespaces/所示:
默认情况下,InnoDB的按表文件空间是在系统的数据目录中创建的,该目录由datadir system变量定义。如果要将InnoDB数据与其他存储引擎的数据分开存储,则通过设置innodb_data_home_dir系统变量来更改这一点。
但对我来说不管用。有什么想法吗?谢谢!
服务器版本: 10.5.13-MariaDB-log
日志中没有与此“问题”相关的错误。
发布于 2022-01-23 04:27:14
更改innodb_file_per_table设置后
干扰目录设置不会移动文件。
该设置仅在CREATE TABLE或ALTER TABLE时生效。与启动一起构建的现有表将保留在ibdata1中。
收缩ibdata1是不容易的。此外,它不能被移除,而不是变成“空”;除了桌子之外,其他东西都在里面。
你的最终目标是什么?如果要收缩ibdata1,那么这里有大量的Q&A通过步骤来实现这一点。
或者,新目录位于单独的物理驱动器上。(这不太可能在性能上产生太大影响。)
如果您只是简单地将东西“移动”到另一个目录,那么下面的操作可能会有效。(小心!我不太确定。)
ib*和任何数据库目录移动到新位置。https://dba.stackexchange.com/questions/306441
复制相似问题