零基础尝试mysql主从复制
本文参考了这篇文章 https://blog.csdn.net/tenc1239/article/details/130451736 感谢大佬的分享
前提:自己准备好两个数据库环境,我用的是本机的vm虚拟机linux中的mysql(版本8.0.33)和本机windows中的mysql(8.1.0)
一、配置主库
1、配置 my.cnf 文件
# 服务id 用来保证整个集群环境的唯一性 取值范围[1,2^32 - 1] 默认为1 server-id=1 # 是否可读:0可读可写 1只读 read-only=0 # 二进制文件的命名 log-bin=master-bin # 二进制索引文件的命名 log-bin-index=master-bin.index # 忽略的数据 表示不需要同步的数据库 # binlog-ignore-db=mysql # 指定同步的数据库 binlog-do-db=zeroStart
2、创建用于复制的账号(也可以直接用root)
--创建账号 mysql> create user 'mts'@'%' identified by '12345678'; --也可以直接使用这句: mysql> GRANT all privileges on *.* to 'mts'@'%' identified by '12345678' with grant option; --设置主重复制权限 mysql> grant replication slave on *.* to 'mts@'%'';
3、查看二进制坐标
mysql> show master status;
这里面的 File、Position 在从库配置中会用到
二、从库配置
1、修改 my.ini 文件
# server-id 要和主库不一样 server-id=2 # 只读(可选) read-only=1
2、使用 mysql -h 主库ip -u root -p 命令,测试是否能连接上主库
3、修改从库数据源,注:\ 为换行符
mysql> change master to \ mysql> master_host='192.168.153.128',\ #主库地址 mysql> master_port=3306,\ #主库端口 mysql> master_user='root',\ #主库用户(为省事我直接使用root) mysql> master_password='12345678',\ mysql> master_log_pos=157,\ #起始位置,使用上面的 Position 值 mysql> master_log_file='master-bin.000002'; #二进制文件名,使用上面的 File 值
4、启动主从复制
mysql> start replica;
三、操作数据,查看主从复制状态
1、在主库使用 insert、update、delete 操作,查看数据是否会同步到从库
2、查看主从复制状态
mysql> show replica status\G;
四、注意事项:
1、操作前先确保主从库能互通,端口有放开
2、从库可以有多个,本文只是作为记录,只配置了一个
3、停止主从复制,可以在从库使用 STOP SLAVE; 命令
免责声明:
1、本站资源由自动抓取工具收集整理于网络。
2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。
3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。
4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。
5、如果您喜欢本资源,请您支持作者,购买正版内容。
6、资源失效,请下方留言,欢迎分享资源链接
文章评论