我想更改ibtmp1存储在debian 11上MySQL8.0.25中的路径。我看到:
mysql> SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G
*************************** 1. row ***************************
FILE_ID: 4294967293
FILE_NAME: ./ibtmp1我更改了mysqld.cnf:
[mysqld]
innodb_tmpdir=/$newDir/
innodb_temporary=/$newDir/
innodb_temp_tablespaces_dir=/$newDir/
innodb_temp_data_file_path=/$newDir/重新启动mysqld,但这并没有改变任何事情。同样适用于:
mysql> SELECT @@innodb_temp_data_file_path;
+------------------------------+
| @@innodb_temp_data_file_path |
+------------------------------+
| ibtmp1:12M:autoextend |
+------------------------------+只有当我更改init.d脚本时:
mysqld_safe --innodb-tmpdir=/$newDir/
我在mysql> SELECT @@innodb_tmpdir;中看到路径是设置的(不幸的是,这不会影响ibtmp1的路径。
我不确定是否正确读取了mysqld.cnf,但是/usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"显示其中一个文件是正确的。
有没有办法通过mysql语句来做到这一点?看起来怎么样?最简单的方法,就是在文件系统中建立一个符号链接,现在已经不起作用了。
发布于 2022-04-22 15:20:11
里克·詹姆斯( Rick )的回答让我意识到(为什么) conf文件没有被读取。所以我把/etc/mysql/mysql.conf.d/mysqld.cnf复制到了/etc/mysql/my.cnf上。那一条读起来很好。然后,我不得不定义(在my.cnf中):
[mysqld]
innodb_tmpdir=$yourNewTmpPath
innodb_temp_data_file_path=$yourNewTmpPath/ibtmp1:50M:autoextend:max:50G
innodb_temp_tablespaces_dir=$yourNewTmpPath
...用新的临时目录替换$yourNewTmpPath。(根据需要采用innodb_temp_data_file_path参数(autoextend可能不需要50G ))。
重新启动mysqld。
您可以评估这些设置是否由下列人员正确使用:
mysql> SELECT @@innodb_temp_data_file_path;
+----------------------------------------------------------+
| @@innodb_temp_data_file_path |
+----------------------------------------------------------+
| $yourNewTmpPath/ibtmp1:50M:autoextend:max:50G |
+----------------------------------------------------------+现在我可以用... CONVERT TO CHARACTER SET utf8mb4;修改一个160 Now的表了。在我的NFS挂载上,它会生成一些临时的.nfs0000...文件,这些文件会不时地被移除并再次创建。我想他们一次最多只需要50 at左右。我还观察了mysqld的IO操作(使用iotop -oPa),这意味着写入操作的IO操作超过1TB,读取操作的IO操作也超过1TB。
因此,这里的关键是将配置文件复制到确实使用它的位置,并为它们使用适当的变量和值。
发布于 2022-04-19 18:47:19
mysqld --help --verbose在第13行,它将说明配置文件在哪里。它可能不像你拼写的那样拼写。我的说
...
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
...https://dba.stackexchange.com/questions/311116
复制相似问题