如何在Redhat下迁移mysql数据文

全国治白癜风最好医院 https://wapyyk.39.net/bj/zhuanke/89ac7.html

最近维护的服务器数据库磁盘告警,添加了新磁盘之后,需要将老数据移到新磁盘上。

我服务器相关环境

Mysql存储位置:由于采用yum安装的mysql,存储位置如下datadir=/var/lib/mysqlpid-file=/var/run/mysqld/mysqld.pidsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.log打算移动datadir到如下:datadir=/data/mysql

确认SELinux的相关情况

~]#ls-lZ/var/lib/mysqldrwx------.mysqlmysqlunconfined_u:object_r:mysqld_db_t:s0mysql

停止mysql服务

~]#servicemysqldstopStoppingMySQL:[OK]

建立新数据文件夹在新磁盘上

~]#mkdir-p/data/mysql

拷贝数据到新文件夹中

~]#cp-R/var/lib/mysql/*/data/mysql/

修改新目录的所用用户及权限

~]#chown-Rmysql:mysql/data/mysql

查看新目录的SELinuxlabel

~]#ls-lZ/data/mysqldrwxr-xr-x.mysqlmysqlunconfined_u:object_r:usr_t:s0mysql

修改my.cnf,注意我得my.cnf在/etc/my.cnf下,有时候会安装到/etc/mysql/my.cnf

[mysqld]datadir=/data/mysql

尝试运行servicemysqlstart,通过审计查看是否有错误

~]#servicemysqlstartMySQLDaemonfailedtostartStartingMysql[失败]

确认log问题

/var/log/audit/audit.log/var/log/messages

如果遇到类似SELinux问题,请继续,如果遇到其他问题,请安装错误提示解决

安装semanage

~]#yum-yinstallpolicycoreutils-python

添加规则mapping

~]#semanagefcontext-a-tmysqld_db_t/data/mysql(/.*)?

查看规则mapping添加情况

~]#grep-imysql/etc/selinux/targeted/contexts/files/file_contexts.local/mysql(/.*)?system_u:object_r:mysqld_db_t:s0

使用restorecon应用规则

~]#restorecon-R-vF/mysql

再次启动Mysql

~]#servicemysqldstartStartingMySQL:[OK]

查看新目录SELinuxlabel情况

~]$ls-lZ/data/mysqldrwxr-xr-x.mysqlmysqlsystem_u:object_r:mysqld_db_t:s0mysql

Tips:

确认新目录的权限为以上,实在不行过程中如果启动成功了mysql,千万不要killmysql进程,要正常关闭,不然InnorDB会有风险数据库密码忘记的可以使用skip-grant-tables在[mysqld]中(my.cnf文件)redhat


转载请注明:http://www.aierlanlan.com/tzrz/5454.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了