linux centos7.3修改现有mariadb数据库存储路径

有的lnmp环境包或yum安装方式默认将mariadb数据库装在系统盘,其中就包括数据存储文件,万一系统宕机无法启动,那么数据文件就有损坏的可能,甚至造成无法挽回的局面。接下来我们就可以单独将数据存储文件放在其他分区或数据盘,这样即便是系统挂掉,也能轻易快速恢复mariadb数据库的正常运行。

如果你不知道当前数据库路径,只需要输入以下命令即可查看到:

回车后输入您的mariadb密码后回车

# mysql -uroot -p

输以下命令显示各种mariadb的路径调用情况。其中datadir项就是现存储的路径。

MariaDB [(none)]> show variables like ‘%dir%’;

退出数据库登录状态

MariaDB [(none)]> exit;

停止数据库

# systemctl stop mysql.server

新建mariadb新存储的路径文件夹

# mkdir -p /home/mysql/data

进入home目录

# cd /home

给新的路径文件夹mysql用户权限

# chown -R mysql:mysql /mysql

修改下面启动脚本mysql文件中的datadir路径,mysql启动脚本路径不一样,也有可能会在/usr/lib/systemd/system目录下(centos7)

# vi /etc/init.d/mysql

找到datadir=/var/lib/mysql修改成datadir=/home/mysql/data,如果有相同的/var/lib/mysql路径,同样修改为/home/mysql/data,

例如:

“innodb_data_home_dir”和“innodb_log_group_home_dir“

修改后保存并退出,在修改my.cnf中的数据存储路径

修改my.cnf文件中datadir=路径和上面修改的方法一样,修改还好以后保存并退出,然后启动mariadb服务。

# vi /etc/my.cnf

# systemctl start mysql.server

注意:如果你有数据文件,那么就把你的贝到/home/mysql/data下,还有/var/lib/mysql下的mysql件夹也拷贝过去,其他文件就不要拷贝了,这样你新建的用户和密码都会是你以前的。如果拷贝所有文件,就会启动报错。

如果以上方式不能成功且启动报错,可以在重启失败后执行初始化数据库命令,执行数据库命令前,/home/mysql/data下必须是空的,初始化成功后再导入数据库,以下是初始化数据库的命令:

# /usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/home/mysql/data

再次启动就正常了

# systemctl restart mysql.server

初始化成功后,数据库密码是空的,执行以下命令开始设置密码

# /usr/local/mysql/bin/mysql_secure_installation

注意:第一个是提示你输入mysql密码,其实新安装的mysql默认是空密码,然后直接回车输入两次新密码回车,接下来全部按Y即可(基本上是删除了test测试数据库和匿名账号和删除后立刻生效(最后一个Y))。
到此数据库修改路径已经完成。如你有更好的方法,希望你能提出来,我们一起学习共同努力、进步。转载请注明,谢谢!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code