版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/somTian/article/details/75330273
问题
在使用mysql查询建表的时候,突然除了这个错误
Error writing file '/tmp/MY0BkiqD' (Errcode: 28)
原因
后来才发现是我们服务器的系统盘满了,没办法存储缓存!!!
我们自己的服务器有一块SSD系统盘和另外一块硬盘,安装mysql时默认将数据库存放在了SSD中,结果导致很快SSD不够用了,因此将mysql数据库的存放位置做了一下迁移。
1. 准备工作
首先确认mysql 数据存放位置
mysql -u root -p
输入密码后进入命令好操作
show variables like '%dir%';
可以看到我们的数据库存放在
datadir = /var/lib/mysql
然后关闭mysql 服务
service mysql stop
2. 迁移数据
这里使用mv命令之前迁移,如果谨慎一点可以先用cp命令拷贝下
mv /var/lib/mysql /data/mysql
3. 修改配置文件
sudo vim /etc/mysql/my.cnf
将其中的datadir改为
datair = /data/mysql
保存退出
然后
sudo vim /etc/apparmor.d/usr.sbin.mysqld
将其中
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
两行权限声明,可以在前面加上#好注释掉。然后对照格式,加入新路径的权限声明:
扫描二维码关注公众号,回复:
3890500 查看本文章
/data/mysql/ r,
/data/mysql/** rwk,
最后
sudo vim /etc/apparmor.d/abstractions/mysql
将其中的sock地址改为
/data/mysql/mysql.sock rw
保存退出
4. 修改文件权限
sudo chmod 755 /data
5. 重启数据库
配置文件修改成功后就可以重启数据库,重启数据库之前需要先重新载入apparmor配置文件,使用下面命令重新载入:
sudo /etc/init.d/apparmor restart
重载成功就可以使用下面命令启动数据库:
sudo /etc/init.d/mysql start