本文主要是解决mysql datadir指向目录满了以后,迁移到其它空间更大的目录。
1、关闭运行的数据库并打包备份:
sudo systemctl status mysqld.service
确定是否运行,如果运行则用,
sudo systemctl stop mysqld.service
压缩备份当前 datadir指的目录。datadir指向的目录通常是在 /etc/my.cnf,可用cat /etc/my.cnf查看,如图:
cd /var/lib
tar zxvf ./mysql -C bf-mysql.tar
tar命令:
解包:tar zxvf FileName.tar -C DirName
打包:tar czvf FileName.tar DirName
2、更改datadir指向目录:
vi /etc/my.cnf
# datadir=/var/lib/mysql
datadir=/home/mysql
# socket=/var/lib/mysql/mysql.sock
socket=/home/mysql/mysql.sock
保存退出后。
>>> mv /var/lib/mysql /home
移动数据至 /home目录。
3、启动Mysql:
创建一个软链接
>>> ln -s /home/mysql /var/lib/mysql
如果不创建启动时将会报如图错误:
这个错误可以用,mysql_install_db --user=mysql --ldata=/home/mysql,不过最好创建一个软链接。
给新的目录权限
>>> chown -R mysql:mysql /home/mysql/
最后重启数据库
>>> sudo systemctl start mysqld.service