有的lnmp环境包或yum安装方式默认将mariadb数据库装在系统盘,其中就包括数据存储文件,万一系统宕机无法启动,那么数据文件就有损坏的可能,甚至造成无法挽回的局面。接下来我们就可以单独将数据存储文件放在其他分区或数据盘,这样即便是系统挂掉,也能轻易快速恢复mariadb数据库的正常运行。
如果你不知道当前数据库路径,只需要输入以下命令即可查看到:
回车后输入您的mariadb密码后回车
<span style="color: #57a64a;font-style: italic;line-height: 26px"># mysql -uroot -p</span>
输以下命令显示各种mariadb的路径调用情况。其中datadir项就是现存储的路径。
停止数据库
<span style="color: #57a64a;font-style: italic;line-height: 26px"># systemctl stop mysql.server</span>
新建mariadb新存储的路径文件夹
<span style="color: #57a64a;font-style: italic;line-height: 26px"># mkdir -p /home/mysql/data</span>
进入home目录
<span style="color: #57a64a;font-style: italic;line-height: 26px"># cd /home</span>
给新的路径文件夹mysql用户权限
<span style="color: #57a64a;font-style: italic;line-height: 26px"># chown -R mysql:mysql /mysql</span>
修改下面启动脚本mysql文件中的datadir路径,mysql启动脚本路径不一样,也有可能会在/usr/lib/systemd/system目录下(centos7)
<span style="color: #57a64a;font-style: italic;line-height: 26px"># vi /etc/init.d/mysql</span>
找到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服务。
注意:如果你有数据文件,那么就把你的贝到/home/mysql/data下,还有/var/lib/mysql下的mysql件夹也拷贝过去,其他文件就不要拷贝了,这样你新建的用户和密码都会是你以前的。如果拷贝所有文件,就会启动报错。
如果以上方式不能成功且启动报错,可以在重启失败后执行初始化数据库命令,执行数据库命令前,/home/mysql/data下必须是空的,初始化成功后再导入数据库,以下是初始化数据库的命令:
再次启动就正常了
<span style="color: #57a64a;font-style: italic;line-height: 26px"># systemctl restart mysql.server</span>
初始化成功后,数据库密码是空的,执行以下命令开始设置密码
<span style="color: #57a64a;font-style: italic;line-height: 26px"># /usr/local/mysql/bin/mysql_secure_installation</span>
注意:第一个是提示你输入mysql密码,其实新安装的mysql默认是空密码,然后直接回车输入两次新密码回车,接下来全部按Y即可(基本上是删除了test测试数据库和不实名账号和删除后立刻生效(最后一个Y))。