首先感谢CSDN博主「蒜丶」的原创文章https://blog.csdn.net/m0_37048012/article/details/100855500,解决了我一上午的坑,结合大神的文章记录一下解决办法,下次好找
好久不用这个数据库,忘了数据库的版本,和我一样的亲们一定得先查看一下自己的数据库版本,便于网上搜到一样的解决办法。
装了mysql后想到数据存储量要很大,所以挂了一块数据盘/data,需要将mysql的存储路径由默认改为/data下面。
操作步骤:
1.登录mysql,检查mysql数据库存放目录
mysql -u root -p
#进入数据库
show variables like '%dir%';
#查看sql存储路径
(查看datadir 那一行所指的路径,可以看出目前是默认路径)
quit;
#退出mysql数据库
2.停止mysql服务
service mysqld stop
3.创建新的数据库存放目录
mkdir /data/mysql_data
4.备份之前存放数据库目录文件
我是直接用winscp备份到另一台服务器一份
5.移动之前存放数据库目录文件,到新的数据库存放目录位置
mv /usr/local/mysql/data/* /data/mysql_data
6.修改三个配置文件
之前我只改了前两个配置文件,所以一直报错
6.1第一个文件:修改之前先备份cp /etc/my.cnf /etc/my.cnfbak
编辑" vi /etc/my.cnf “文件,修改datadir和socket路径,然后ESC退出” :wq "保存
注意:假如/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文档,拷贝其中一个到/etc/并改名为my.cnf
[root@centosServer ~]# vi /etc/my.cnf
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
修改成
datadir=/data/mysql_data/mysql
socket=/data/mysql_data/mysql/mysql.sock
6.2第二个文件:修改之前先备份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak
编辑" vi /etc/init.d/mysqld “文件,修改datadir路径,然后ESC退出” :wq "保存
[root@centosServer ~]# vi /etc/init.d/mysqld
# get_mysql_option datadir"/var/lib/mysql"mysqld
# datadir="$result"修改成
get_mysql_option datadir"/data/mysql_data/mysql"mysqld
datadir="$result"
6.3第三个文件:修改之前先备份 cp /usr/bin/mysqld_safe /usr/bin/mysqld_safebak
编辑" vi /usr/bin/mysqld_safe “文件,修改datadir路径,然后ESC退出” :wq "保存
[root@centosServer ~]# vi /usr/bin/mysqld_safe
# Or just give up and use our compiled-in default
elseDATADIR=/var/lib/mysql
fi
修改成
# Or just give up and use our compiled-in default
elseDATADIR=/data/mysql_data/mysql
fi
7.创建软连接,重启服务
ln -s /data/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
service mysqld start
8.进入数据库后再确认一下存储路径
show variables like '%dir%';
终于可以了
参考
https://blog.csdn.net/m0_37048012/article/details/100855500
https://www.cnblogs.com/hellangels333/p/8376177.html