Ubuntu 下mysql数据库存放位置迁移

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/somTian/article/details/75330273