mysql:我应该将mysql tmpdir从/ tmp更改为/ var / lib / mysql / tmp

最近,在其中一个生产服务器上,我们看到由于/tmp驱动器上的空间问题而导致复制被停止,因此分配的空间较less。

我想将tmpdir/tmp[default]/var/lib/mysql/tmp

以下是我想我应该做的。

  1. 停止mysql
  2. /var/lib/mysql/目录下创build名为tmp
  3. 添加tmpdir = /var/lib/mysql/tmp/
  4. 启动mysql

/var/lib/mysql/tmp/的权限级别有什么要注意的吗?

 Below are what I guess I should do. 1. stop mysql 2. create directory called `tmp` in the location `/var/lib/mysql/` 3. add `tmpdir = /var/lib/mysql/tmp/` 4. start mysql 

更改后重新启动MySQL,可以将1.和4.组合在一起。

关于2.,你应该把tmpdir放在datadir之外。

/var/lib/mysql/tmp/的权限级别有什么要注意的吗?

chown mysql:mysql /path/to/tmp/dir就够了。

请访问此博客,了解有关apparmor和my.cnfconfiguration的详细步骤, http: //sharadchhetri.com/2014/12/27/change-path-tmpdir-mysql-server-ubuntu/

首先检查你的tmp目录文件夹

 SHOW VARIABLES LIKE 'tmpdir'; 

创buildmy.cnf的备份

 sudo cp -pv /etc/mysql/my.cnf /etc/mysql/my.cnf.`date +%F`.bak 

创build一个新的目录来保存这些文件

 sudo mkdir /mysql_tmp_dir 

让mysql用户成为目录sudo chown mysql:mysql / mysql_tmp_dir

编辑my.cnf

更换,

  sudo vim /etc/mysql/my.cnf tmpdir = /tmp 

  tmpdir = /mysql_tmp_dir 

编辑mysqld的apparmorconfiguration

 sudo vi /etc/apparmor.d/usr.sbin.mysqld 

添加线条,

 /mysql_tmp_dir r, /mysql_tmp_dir rw 

重启apparmor和mysql

 sudo service apparmor restart sudo service mysql restart 

要检查更改是否正常工作,

 SHOW VARIABLES LIKE 'tmpdir'; 

答对了! 这应该显示新的tmpdir的path

这不被推荐。 默认情况下,/ tmp将被安装在tmpfs之外,mysql将使用这个进行额外的大型查询等。在tmpfs中意味着IOPS命中RAM而不是硬盘或SSD。 这提高了性能,并没有真正的缺点,因为存储在tmpdir中的数据适合易失性存储。 如果你最大化你的/ tmp的大小,我build议你编写你的查询来提高效率,或者如果你有RAM空间,可以通过fstab来扩大/ tmp的大小。 如果此解决scheme无效,请随意定义您自己的tmpdir位置,并将其指向具有较大分区分配的磁盘。

如果你在/ var / lib / mysql下创buildtmp,mysqld会认为,这是数据库…