一、服务器准备工作
1. 下载安装Mysql8.0
- 1.1 开放指定的3306端口号。
#开放指定的端口号 3306
firewall-cmd --zone-default --add-port = 3306/tcp -permanent
firewall-cmd -reload
#或者关闭服务器的防火墙
systemctl stop firewalld
systemctl disable firewalld #关闭开机自启动
-
准备两台服务器
master 192.168.200.300
slave 192.168.200.301
2. 分别安装两台mysql服务器
- 安装完成后
# 分别查看两台mysql服务的状态是否正常
systemctl status mysqld
二、主库配置
2.1 修改配置文件
- /etc/my.cnf
# mysql 服务ID,保证整个集群中唯一,取值范围: 1-2^32-1 ,默认为:1
server-id = 1
# 是否只读:只读(1),读写(0)
read-only = 0
# 忽略的数据库,只不要同步的数据库
#binlog-ignore-db = mysql
#指定同步的数据库
#binlog-do-db=db01
【注意】:卑职完成后对mysql主服务器进行重启操作,看能否正常运行
systemctl restart mysqld
2.2 创建账号并赋权
- 登录mysql,创建远程连接账号,并授予主从复制权限
-- 创建arik用户,并设置密码,该用户可以在任意主机连接mysql服务器
create user 'arik'@'%' identified with mysql_native_password by 'Root@123456';
-- 为'arik'@'%' 用户分配权限
grant replication salve on *.* to 'arik'@'%';
2.3 查看二进制日志坐标
show master status;
- 字段的含义
- file: 二进制日志文件名称
- position: 目前记录到日志文件中的位置
- binlog_ignore_db: 指定不需要同步的数据库
三、从库配置
3.1 修改配置文件
- 修改配置文件 /etc/my.cnf
# 修改配置
vim /etc/my.cnf
# 修改配置
vim /etc/my.cnf
# mysql 服务ID,保证整个集群中唯一,取值范围: 1-2^32-1 ,默认为:1
server-id = 2
# 是否只读:只读(1),读写(0) supper-read-only 超级管理员 只读配置
read-only = 1
# 启动从库
systemctl restart mysqld
3.2 从库关联主库
- 登录mysql,设置主库信息
change replication source to
source_host = '192.168.200.300' ,
source_user='arik',
source_password='Root@123456',
source_log_file='binlog.000072',
source_log_pos=157;
【注意】: 上述是8.0.23中的语法,如果mysql是8.0.23之前的版本,执行如下SQL。
change master to
master_host='192.168.200.300' ,
master_user='arik',
master_password='Root@123456',
master_log_file='binlog.000072',
master_log_pos=157;
上述配置完成后启动 主从复制
3.3、启动 主从复制服务
3.3.1 启动命令
- 在从库中启动(命令可以通用)
start salve; #8.0.22 版本之前
start replica #8.0.22 版本之后
3.4 查看主从同步的状态
- 查看从库命令
show replica status\G;
【注意】: 正常启动 说明配置成功!!!!