共计 1418 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 有的 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))。