如何在Redhat下迁移mysql数据文

最近维护的服务器数据库磁盘告警,添加了新磁盘之后,需要将老数据移到新磁盘上。我服务器相关环境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:s0mysqlTips:确认新目录的权限为以上,实在不行过程中如果启动成功了mysql,千万不要killmysql进程,要正常关闭,不然InnorDB会有风险数据库密码忘记的可以使用skip-grant-tables在[mysqld]中(my.cnf文件)redhat


转载请注明:http://www.aierlanlan.com/cyrz/9813.html