怎样通过拷贝数据文件的方式创建MySQL从库?

科技   2024-05-30 16:34   上海  

作者简介

马听,清华大学所在国家学生,0家世界500强创始人,福布斯2024富豪榜阅读者。


有时候,我们有一套MySQL主从,希望再创建一个从库。

这种场景,一般建议是通过Xtrabackup来备份数据,再恢复到新实例,然后创建复制,可以参考前面写的一篇文章前两步:MySQL主库扛不住了?来试试读写分离吧

不过有时候,可能比较特殊,比如环境不让安装Xtrabackup,而逻辑备份又很慢,那就可以考虑直接拷贝旧从文件的方式。

当然,拷贝数据文件的时候,需要旧从处于关闭状态。

我们就来看下具体的过程。

1 在新从库创建MySQL相关文件夹

mkdir /data/mysql/{binlog,data,log,tmpdir,conf} -p


2 拷贝基础目录

cd /usr/localscp -r mysql/ 192.168.12.163:/usr/local
提示:这里根据自己实际目录拷贝,比如我的环境,mysql、mysqldump命令,所在的文件夹是:/usr/local/mysql/bin


3 停旧从库

/etc/init.d/mysql.server stop


4 拷贝数据目录

cd /data/mysql/scp -r data/*   192.168.12.163:/data/mysql/data/

5 拷贝Relay log

cd /data/mysql/binlogscp mysql-relay* 192.168.12.163:/data/mysql/binlog/


6 再启动旧从库

/etc/init.d/mysql.server start


7 拷贝启动脚本

cd /etc/init.d/scp mysql.server 192.168.12.163:/etc/init.d/


8 拷贝配置文件

scp /data/mysql/conf/my.cnf 192.168.12.163:/data/mysql/conf/


9 删除新从库的auto.cnf

因为原从库的uuid会持久化到这个文件,不删可能导致uuid冲突,从而导致复制报错。

rm /data/mysql/data/auto.cnf


10 修改新从库的server id

编辑配置文件

vim /data/mysql/conf/my.cnf

修改:

server-id = 12163


11 启动新从库

touch /data/mysql/log/mysql.errchown -R mysql.mysql /data/mysql/etc/init.d/mysql.server start

12 在新从库确定复制是否正常

mysql -uroot -pshow slave status\G

好的,通过拷贝数据文件的方式创建MySQL从库就介绍到这里,欢迎指正。

更多MySQL干货合集可以:点击跳转

MySQL数据库联盟
关注后,回复“高可用”,可获取8篇MySQL高可用文章
 最新文章