#------------------------------------
#(过滤某个数据库、数据库.表)
#replicate_do_db=yzjtestdb
#replicate_wild_do_table=yzjtestdb.%
#replicate_do_table=yzjtestdb.yzjtest_yg
#replicate_wild_do_table=yzjtestdb.yzjtest_yg
#------------------------------------
#GTID Settings GTID 同步复制设置
#------------------------------------
gtid_mode=on#开启GTID同步
enforce_gtid_consistency=on #强制事务一致,确保 GTID 的安全,在事务中就不能创建和删除临时表
binlog_gtid_simple_recovery=1 #这个变量用于在 MySQL 重启或启动的时候寻找 GTIDs 过程中,控制 binlog 如何遍历的算法
#------------------------------------
#避免主键冲突设置
#------------------------------------
auto_increment_increment=2#自增主键步长,通常有几个主库A就写几,避免主键冲突
auto_increment_offset=2#设置自增主键起始值,第一个主库A为1,第二个主库A为2,以此类推
EOF
复制代码
初始化主库 B:
mysqld
--defaults-file=/mysql/data/3308/my.cnf
--initialize --user=mysql
--basedir=/mysql/app/mysql
--datadir=/mysql/data/3308/data
复制代码
配置 MySQL 启动脚本:
cp /mysql/app/mysql/support-files/mysql.server /etc/init.d/mysql_3308
ln -sf /etc/init.d/mysql_3308 /usr/lib/systemd/system/mysql_3308
#修改启动脚本##
vi /etc/init.d/mysql_3308
basedir=/mysql/app/mysql
datadir=/mysql/data/3308/data
mysqld_pid_file_path=/mysql/data/3308/mysql.pid
#在$bindir/mysqld_safe 后面添加,注意 --defaults-file 要放在第一个
--defaults-file="/mysql/data/3308/my.cnf"
systemctl daemon-reload
复制代码
启动 MySQL,修改密码,运行远程登录:
#启动、MySQL服务
systemctl start mysql_3308
#获取MySQL临时密码
Passwd=`cat /mysql/log/3308/*-error.log |grep "root@localhost:"|awk -F ' ' '{print $11}'`
echo $Passwd
#通过本地 socket 登录、修改密码
mysql -uroot -p$Passwd -S /mysql/data/3308/mysql.sock
alter user 'root'@'localhost' identified by"123456";
#允许远程登录
grant all privileges on *.* to root@'%' identified by '123456';
#刷新权限
flush privileges;
复制代码创建复制用户分别在主库 A 和主库 B 上创建一个用于数据复制的用户 。
grant replication slave on *.*
to 'repuser'@'%' identified by 'repuser123';
复制代码建立主从关系主库 A 和主库 B 都先清除下 binlog 。
reset master;
复制代码
主库 A 配置主从,指向主库 B 。
stop slave;
change master to
master_host='192.168.1.36',
master_port=3308,
master_user='repuser',
master_password='repuser123',
master_auto_position=1;
start slave;
复制代码
主库 B 配置主从,指向主库 A 。
stop slave;
change master to
master_host='192.168.1.37',
推荐阅读
- 被记大过了,一个操作把MySQL主从复制整崩了……
- 大厂高频:讲一下MySQL主从复制
- MySQL面试常见问题解析:掌握这10个问题,事半功倍!
- MySQL如何支撑每秒百万QPS?
- 从MySQL到OBOracle:如何处理自增列?
- MySQL分库分表全攻略:从小白到大神的进阶指南!
- 一次MySQL主从同步异常,扒个底朝天都没排查出来……
- MySQL关联查询时,为什么建议小表驱动大表?这样做有什么好处
- MySQL 驱动中虚引用 GC 耗时优化与源码分析
- Mysql的存储引擎有哪些?