MySQL5.7双主安装
214、215 两台服务器
1.下载MySQL安装包
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
2.上传至服务器并解压
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
3.配置文件 /etc/my.cnf
##214 [mysql] default-character-set=utf8mb4 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve port=3306 socket=/var/lib/mysql/mysql.sock basedir=/usr/local/mysql datadir=/data/mysql/data max_connections=200 character-set-server=utf8mb4 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M #集群 server-id=214 log-bin=master-bin log-slave-updates=true binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog_format=STATEMENT auto-increment-increment = 2 auto-increment-offset = 1
##215 [mysql] default-character-set=utf8mb4 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve port=3306 socket=/var/lib/mysql/mysql.sock basedir=/usr/local/mysql datadir=/data/mysql/data max_connections=200 character-set-server=utf8mb4 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M #集群 server-id=215 log-bin=master-bin log-slave-updates=true binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog_format=STATEMENT auto-increment-increment = 2 auto-increment-offset = 2
4.分别启动MySQL
service mysql start
日志中可看到root的密码 如:root@localhost: #Vh0+qwD9-dp ,登录后修改密码
set password for root@localhost = password('xxx');
5.两台服务器创建同步用户
grant replication slave on *.* to 'slave'@'172.10.0.%' identified by 'xxx'; flush privileges;
6.分别查看两台MySQL的binlog, File和Postion
show master status;
7.分别指定对方master
change master to master_host='172.10.0.215',master_user='slave',master_password='xxx',master_log_file='master-bin.000007',master_log_pos=236676703; change master to master_host='172.10.0.214',master_user='slave',master_password='xxx',master_log_file='master-bin.000007',master_log_pos=236676703;
8.分别开启主从并查看状态
start slave; -- stop slave;
show slave status\G;
出现 :
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 即完成。
9.创建函数时,另外一台报错
-- 函数报错的问题 SET GLOBAL log_bin_trust_function_creators=TRUE;
其它:
处理错误时,重启MySQL后需要开启主从
#重启MySQL
service mysql restart
#登录MySQL后
start slave;
服务器之间网络不通时,需要开通对应端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
导入数据报错时,导致数据不同步(可重复操作处理)
-- 数据报错,先停主从 stop slave; -- 设置跳过这个冲突语句 set global sql_slave_skip_counter=1; -- 再启动 start slave;
参考:
https://blog.csdn.net/wuds_158/article/details/132895513