操作过程:

  • 【主,从节点】分别安装mysql服务

  • 【主,从节点】设置mysql常用配置

    • 1.添加管理员用户,设置:server-id
    • 2.开启binlog,同步用户
    • 3.添加防火墙规则
  • 【从节点】同步主节点

    • 1.设置主节点同步信息:文件,索引位置
    • 2.查看状态
    • 3.开始同步
  • 测试同步操作

  • 从节点失效后重新同步

节点IP:

  • 主节点: 192.168.2.40
  • 从节点: 192.168.2.41

1.【主,从节点】分别安装mysql服务:

# 1.使用 lamp.sh 编译安装: mysql-5.7*,设置密码: root
yum -y install wget screen git
git clone https://github.com/teddysun/lamp.git
cd lamp
chmod 755 *.sh
screen -S lamp
./lamp.sh

2.【主,从节点】设置mysql常用配置,添加管理员用户,设置:server-id

2-1.【主,从节点】配置服务:

vim /etc/my.cnf
// 字符集
character_set_server=utf8
// 节点ID:主,从要区别开不能一致
server-id=40
// 【主节点】开启binlog
log-bin=mysql-bin
// 密码安全级别验证取消
validate_password=OFF

// 重启服务
systemctl restart mysqld

2-2.【主,从节点】添加用户:

# 登录
mysql -uroot -proot

// 添加外部访问用户
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'Aa123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 【主节点】,添加同步用户
GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' identified by 'Aa123456';

2-3.【主,从节点】开启端口,测试链接:

// 允许3306端口,并重启防火墙生效
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload

3.【从节点】同步主节点

3-1.【主节点】查看binlog信息

mysql -uroot -pAa123456
show master status;

记住 master_log_file 和 master_log_pos 后面会用到

3-2.【从节点】设置同步

// 设置【主节点】同步信息
mysql -uroot -pAa123456
change master to master_host='192.168.2.40',master_port=3306,master_user='repl',master_password='Aa123456',master_log_file='mysql-bin.000001',master_log_pos=154;
// 查看同步状态:
show slave status \G;
// 开始同步:
start slave;
// 查看同步状态:
show slave status \G;
	Slave_IO_Running: YES
	Slave_SQL_Running: YES
// 查看线程(可以看到这两个线程: 等待主服务器更新事件,等待读取本地日志写入数据):
show processlist;

4.测试主从同步

// 1.远程连接主数据库:创建数据,表,添加数据
// 2.从数据库看是否已经同步

5.从节点失效后重新同步

# 【主节点】
reset master;
show master status \G;

# 【从节点】
stop slave;
reset slave;
change master to master_host='192.168.2.40',master_port=3306,master_user='repl',master_password='Aa123456',master_log_file='mysql-bin.000001',master_log_pos=154;
start slave;

# 查看同步状态
show slave status \G;

# 【主节点】加入数据测试从同步

# 【从节点】如果是虚拟机克隆的,需要注意一下几点:
1.更改IP
2.删除: /var/lib/mysql/auto.conf,uuid保存文件,重启的时候没有会自动生成
3.更改: /etc/my.cnf 
	server-id
4.重启mysqld服务:
	systemctl restart mysqld