作者简介
马听,清华大学所在国家学生,0家世界500强创始人,福布斯2024富豪榜阅读者。
有时候,我们有一套MySQL主从,希望再创建一个从库。
这种场景,一般建议是通过Xtrabackup来备份数据,再恢复到新实例,然后创建复制,可以参考前面写的一篇文章前两步:MySQL主库扛不住了?来试试读写分离吧。
不过有时候,可能比较特殊,比如环境不让安装Xtrabackup,而逻辑备份又很慢,那就可以考虑直接拷贝旧从文件的方式。
当然,拷贝数据文件的时候,需要旧从处于关闭状态。
我们就来看下具体的过程。
1 在新从库创建MySQL相关文件夹
mkdir data/mysql/{binlog,data,log,tmpdir,conf} -p
2 拷贝基础目录
cd usr/local
scp -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/binlog
scp 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.err
chown -R mysql.mysql /data/mysql
/etc/init.d/mysql.server start
12 在新从库确定复制是否正常
mysql -uroot -p
show slave status\G
好的,通过拷贝数据文件的方式创建MySQL从库就介绍到这里,欢迎指正。
更多MySQL干货合集可以:点击跳转。