- 下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- 使用官方mysql的yum仓库
yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安装mysql5.7版本
yum -y install mysql-community-server
- 开启远程访问
grant all privileges on *.* to 'root'@'域名/%' identified by 'password' with grant option;
flush privileges;
exit;
- 更改mysql配置文件 路径为/etc/my.cnf,在[mysqld]标签下加如下配置
#等待关闭连接的时间
wait-timeout = 2880000
interactive_timeout = 2880000
max_allowed_packet = 1000M
#忽略大小写
lower_case_table_names = 1
#默认服务器编码
character-set-server=utf8mb4
# log bin
server-id = 300 #必须唯一 ******注意两个服务器要不一致********
log_bin = mysql-bin #开启及设置二进制日志文件名称
binlog_format = MIXED
sync_binlog = 1
log_slave_updates #把从库的写操作记录到binlog中 (缺少之后,双主创建失败)
expire_logs_days =7 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M
binlog-do-db = petkit #要同步的数据库
binlog-ignore-db = mysql #不需要同步的数据库
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
#防止id重复
auto_increment_increment= 2 #设定为主服务器的数量,防止auto_increment字段重复
auto_increment_offset = 1 #自增长字段的初始值,在多台master环境下,不会出现自增长ID重复(不一致) ******注意两个服务器要不一致********
- 创建同步账号
进入容器内,并且登陆mysql
// 主库服务器一
GRANT REPLICATION SLAVE ON *.* TO '填入你的用户名'@'主库二的ip' IDENTIFIED BY '填入你的密码';
FLUSH PRIVILEGES;
// 主库服务器二
GRANT REPLICATION SLAVE ON *.* TO '填入你的用户名'@'主库一的ip' IDENTIFIED BY '填入你的密码';
FLUSH PRIVILEGES;
- 查看两个服务器master的状态,得使用到File和Position
show master status;
找到File和Position的对应列
- 设置同步MASTER_LOG_FILE MASTER_LOG_POS跟上面的对应
##主库一的设置 MASTER_LOG_FILE和MASTER_LOG_POS用的是主库二的File和Position
mysql > CHANGE MASTER TO
MASTER_HOST='192.168.31.158',MASTER_PORT=3306,MASTER_USER='admin',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=476;
START SLAVE;
## 主库二的设置 MASTER_LOG_FILE和MASTER_LOG_POS用的是主库一的File和Position
CHANGE MASTER TO MASTER_HOST='192.168.31.186',MASTER_PORT=3306,MASTER_USER='admin',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=474;
- 查看是否生效
SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 如果Slave_IO_Running一直为no,删除/var/lib/mysql/auto.cnf然后重启