Linux centos 变更MySQL数据存储路径
登录mysql,查看数据存储路径
bash
mysql -u root -p
bash
show global variables like "%datadir%";
创建新目录
查看磁盘空间
bash
df -h
选取最大磁盘,此处以/data目录为例,创建mysql数据存储的新目录:new_mysql_data
bash
cd /data
bash
mkdir new_mysql_data
bash
cd new_mysql_data
bash
pwd
准备迁移数据
停止mysql运行
bash
systemctl stop mysql
复制原存储数据到新存储目录(如果原库数据较大,此过程执行较长,请耐心等待完成)
bash
cp -a -r /app/mysql/data/* /data/new_mysql_data
mysql授权
bash
chown -R mysql:mysql /data/new_mysql_data
修改MySQL配置文件
bash
vi /etc/my.cnf
按键盘i键进入编辑状态,注释datadir 原路径配置,配置新路径:
bash
datadir = /data/new_mysql_data
注:如果MySQL配置文件中涉及原数据目录指向的,均要修改为新目录,最好使用notepad++打开配置文件,全局搜索一下原数据目录/app/mysql/data有哪些涉及,比如
bash
# datadir = /app/mysql/data
datadir = /data/new_mysql_data
# log-error=/app/mysql/data/master.err
log-error=/data/new_mysql_data/master.err
# pid-file=/app/mysql/data/master.pid
pid-file=/data/new_mysql_data/master.pid
按键盘esc键,输入:eq!保存并退出编辑
检查是否配置成功
启动mysql,登录数据库,再次查看数据路径
bash
systemctl start mysql
创建测试数据库,进入目录,发现数据已在新目录成功创建,说明迁移全部成功完成
bash
CREATE DATABASE database_temp;
新开连接窗口或者退出mysql,前往目录,无异常则说明配置成功
bash
cd /data/new_mysql_data/database_temp/
验证完成,删除测试数据库
bash
DROP DATABASE database_temp;
退出数据库
bash
quit;
重启数据库,再次检查无误,则可以删掉原数据目录的占用
bash
systemctl restart mysql
至此完成;