主从复制

安装linux系统,linux系统需要安装mysql 8, 具体安装步骤查看其它文档

主数据库

配置内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#==================== 主从同步配置=========================
#节点id编号,各个mysql的server_id需要唯一
server_id=1
#[可选] 单个binlog最大的文件大小,默认是1G
max_binlog_size=500M
#[可选]设置binlog格式.STATEMENT,row,mixed
binlog_format=row
#[可选]0(默认)表示读写(主机),1表示只读(从机)
read-only=0
#[可选]设置日志文件保留的时长,单位是秒(默认不删除文件)
#binlog_expire_logs_seconds=6000
#[可选]设置不要复制的数据库
#binlog-ignore-db=test
#[可选]设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
#binlog-do-db=需要复制的主数据库名字

需要在配置文件中的【mysqld】中添加如下配置

从数据库

配置内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
##节点id编号,各个mysql的server_id需要唯一
server_id=2
#[可选] 单个binlog最大的文件大小,默认是1G
max_binlog_size=500M
#[可选]设置binlog格式.STATEMENT,row,mixed
binlog_format=row
#[可选]0(默认)表示读写(主机),1表示只读(从机)
read-only=1
# #[可选]设置日志文件保留的时长,单位是秒(默认不删除文件)
# #binlog_expire_logs_seconds=6000
# #[可选]设置不要复制的数据库
# #binlog-ignore-db=test
# #[可选]设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
# #binlog-do-db=需要复制的主数据库名字

同样在从库中添加该配置。

创建用户用于主从复制操作

两台服务器都需要进行操作

1
2
3
4
5
6
7
8
9
#创建slave1用户。下面的“%”最好能换成 另外一台服务器的IP,代表只有另外一台服务器才能通过该salve用户访问当前mysql
CREATE USER 'cp_user'@'192.168.116.%' IDENTIFIED with mysql_native_password BY '123456';
#上面命令用于mysql8,如果上面命令创建用户失败,则用下面命令来创建用户
# CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';

#给slave1用户授予数据同步的权限
GRANT replication slave on *.* to 'cp_user'@'192.168.116.%'
#刷新权限
flush privileges;

开启主从同步

1
2
# 查看主节点binlog执行位置(主节点来执行以下命令)
show master status

从节点开启主节点同步操作

1
2
CHANGE MASTER to MASTER_HOST='192.168.116.129',
MASTER_USER='cp_user',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000007',MASTER_LOG_POS=1505;

开始同步

1
start slave;

查看同步状态

1
show slave status;

接下来就可以开始测试了。主库创建数据库,数据库表,增删改数据查看是否同步。