Centos 下更改MySQL源数据存放目录(datadir)

MySQL在安装完成之后,其源数据默认存放在 /var/lib/mysql/ 目录下,一般情况下,该目录在根目录下,由于Linux系统默认  根目录所在挂载的磁盘容量有限,随着生产数据的不断产生,该目录会越来越大,如果磁盘空间不足,Mysql 会报Got error 28 from storage engine错误,所以最好将MySQL的数据目录进行更改。查看MySQL源数据存放路径的命令是
show variables like 'datadir';
结果如图:
   
停止MySQL服务器,命令为: service mysql stop 。
创建新的数据目录/home/datadir,命令为: mkdir /home/datadir
将以前的数据文件复制到新的数据目录下,命令为: cp -rf /var/lib/mysql /home/datadir
更改配置文件my.cnf,命令为:
vim /etc/my.cnf
将参数datadir修改为
datadir = /home/datadir/mysql
将参数sock(有两处,分别在client和mysqld)都修改为  socket = /home/datadir/mysql/mysql.sock 修改之后如下图所示:
然后,:wq 保存退出。

.修改MySQL启动脚本,命令为:
vim /etc/init.d/mysql 。
#datadir=/var/lib/mysql(注释此行)
  datadir=/home/datadir/mysql(加上此行),如图:

然后 :wq 保存并退出
解决目录权限问题命令:
chown -R mysql:mysql /home/datadir/mysql
如果防火墙未关闭则关闭防火墙: setenforce 0
service mysql start ,启动MySQL再次使用
show variables like 'datadir';命令查看datadir,如下:

原文地址:https://www.cnblogs.com/ExMan/p/11271850.html