- 虚拟机系统CentOS7, mysql使用的是mariadb。
- 主数据库 192.168.1.7 , 从数据库192.168.1.8。
- 请确保开启了虚拟机防火墙3306端口。
- 初学者,还有很多配置项我没有深入研究,本文仅作参考。
一、主数据库
1. 创建用户
GRANT REPLICATION SLAVE ON *.* TO 'voyager'@'192.168.1.%' IDENTIFIED BY '123';
用户名:voyager,密码:123,允许访问的ip 192.168.1.%(根据自身)
2. 创建两个数据库
CREATE DATABASE voyager1;
CREATE DATABASE voyager2;
主要是借以说明多个数据库的同步。
3. 修改配置
vim /etc/mysql/my.cnf
[mysqld]
server-id=7
log-bin=log
binlog-do-db=voyager1
binlog-do-db=voyager2
binlog-ignore-db=mysql
##新增, 还没研究
//binlog-format=row //
//bind-address=0.0.0.0//
//relay-log//
systemctl restart mariadb
4. 查看状态
show master status;
+------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+-------------------+------------------+
| log.000001 | 245 | voyager1,voyager2 | mysql |
+------------+----------+-------------------+------------------+
记住 File 和 Position 的值。
二、从数据库
1. 创建数据库
依据上边创建数据库voyager1
,voyager2
。
2. 修改配置
-
添加server-id
vim /etc/my.cnf
[mysqld] server-id=8
systemctl restart mariadb
-
添加主数据库信息
stop slave ;
change master to master_host='192.168.1.7', master_user='voyager', master_password='123', master_port=3306, master_log_file='log.000001', master_log_pos=245;
这里最后两个参数为 File 和 Position 的值start slave ;
3. 查看状态
show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.7
Master_User: voyager
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: log.000001
Read_Master_Log_Pos: 597
Relay_Log_File: mariadb-relay-bin.000004
Relay_Log_Pos: 523
Relay_Master_Log_File: log.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此时看到两个亲切的Yes即代表成功。
然后去主数据库创建表,在从数据库查看吧!