环境准备

Master 172.16.0.14
Slave  172.16.0.19
关闭防火墙和selinux
系统时间需要同步
master和slave的数据库版本保持一致(系统版本保持一致)

主从复制

编辑配置文件

--在Master 上编辑配置文件
vim /etc/my.cnf 
[mysqld]
server-id=1      
log-bin=mysql-bin

--参数解释
server-id=1       #设置server-id为1, Master和Slave的server-id不能一样
log-bin=mysql-bin #开启binlog日志
--在Slave 上编辑配置文件
vim /etc/my.cnf 
[mysqld]
server-id=2   
relay-log=/data/DB/relay.log

重启 Mysql

--在Master 和Slave 上重启Mysql
systemctl restart mysqld
systemctl restart mysqld

配置主从

--在Master 进行以下操作
--登录数据库
[root@localhost /]# mysql -uroot -p123456

--创建授权用户
mysql> grant replication slave on *.* to 'slave'@'172.16.0.19' identified by '123456';

--查看binglog信息
mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 471
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)
--在Slave 进行以下操作
--登录数据库
[root@localhost /]# mysql -uroot -p123456

--配置同步信息
mysql> change master to master_host='172.16.0.14',master_user='slave',master_password='123456',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=471;

--参数解释
master_host=      #Master IP
master_user=      #同步用户
master_password=  #密码
master_port=    #Mysql 端口
master_log_file=  #Master上面查看到的二进制日志名
master_log_pos=   #Master上面查看到的POS值

--启动主从复制
mysql> start slave;

--查看主从同步的状态
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

验证主从

--在Master 创建数据库和创建表
mysql> create database db;
mysql> use db;
mysql> create table db(id int,name char(8),passwd varchar(21));

--插入数据
mysql> insert into db values(1,'END',123456);
mysql> insert into db values(2,'TOM',123456);
--在Slave 查看数据是否同步成功
mysql> select * from db.db;
+------+------+--------+
| id   | name | passwd |
+------+------+--------+
|    1 | END  | 123456 |
|    2 | TOM  | 123456 |
+------+------+--------+
2 rows in set (0.00 sec)
最后修改:2022 年 02 月 24 日
如果觉得我的文章对你有用,请随意赞赏