
主要通过mysql的二进制日志实现的主从同步 会因为网络原因出现同步延迟问题,然后导致同步不及时
如果对同步要求高的项目可以使用PXC方案实现主从同步,但是代价就是对资源的一个消耗 顶峰取决于集群中 的短板
采用的是一个中间管理者 来负责所有设备的同步情况,所有设备都返回Ok 才会返回Ok 一个失败 便所有都回退 返回失败
前提是 主库开启了二进制的日志
备份主库的所有表 在从库中执行一遍
mysqldump -uroot -p --all-databases --lock-all-tables > ~/master_db.sql
说明:
- -u :用户名
- -p :示密码
- --all-databases :导出所有数据库
- --lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改
- ~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定
主库创建用于主从同步进行连接的账号
#创建账号
CREATE USER 'save'@'%' IDENTIFIED BY 'password';
#账号赋权 一般都赋权为REPLICATION SLAVE
GRANT REPLICATION SLAVE ON *.* TO 'save'@'%'
修改密码连接方式 不然的话会报错
#报错内容
#Authentication plugin ‘caching_sha2_password‘ reported error: Authentication
##修改密码连接方式
ALTER USER 'save'@'%' IDENTIFIED WITH mysql_native_password BY '13014786999Wzp.';
###更新密码加密
ALTER USER 'save'@'%' IDENTIFIED WITH mysql_native_password BY '13014786999Wzp.';
获取主服务器的二进制日志信息
SHOW MASTER STATUS;
File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到

从库配置
如果需要限制同步数据库 可自行在my.cnf文件中添加如下配置
replicate-do-db=db_name #需要同步的数据库名
设置连接
##
change master to master_host='192.168.204.129', master_user='slave', master_password='slave',master_log_file='mysql-bin.000001', master_log_pos=590;
注:
- master_host:主服务器Ubuntu的ip地址
- master_log_file: 前面查询到的主服务器日志文件名
- master_log_pos: 前面查询到的主服务器日志文件位置
- master_port:主库的mysql的连接端口 默认3306
开启主从同步
##开启
START SLAVE
##关闭
stop SLAVE
###查看状态
show slave status \G;

网友评论