mysql主从同步流程:
——-实现数据自动数据同步的服务结构
——-主服务器: 接受客户端的访问连接
——-从服务器: 自动同步主服务器数据
主从同步原理:
master:启用bin-log日志
slave:
- slave_IO:复制master主机binlog日志文件里的SQL命令到本机的elay_log文件里
- slave_SQL 执行本机relay-log文件里的SQL语句,实现与master数据一致
思路:
配置主服务器:启用binlog日志,授权用户,查看binlog日志信息
配置从服务器:设置server_id,确保与主服务器数据一致,指定主库信息,启动slave程序,查看状态信息
方案:
准备两台主机
10.7.11.90 主库
10.7.11.91 从库 通过调取主库上的binlog日志,在本地重做对应的库,表,实现与服务器的数据同步
1.配置主库10.7.11.90
/etc/my.cnf
添加
server_id=1
log-bin=master01 #自定义
log-bin_index=/var/lib/mysql/mysql-bin.index
- 用户授权 ```bash mysql>grant replication slave on . to masterbackup@’10.7.11.%’ identified by ‘123456’;
备注
10.7.11.%通配符,表示0-255的IP都可访问主服务器,正式环境请配置指定从服务器IP
若将 10.7.11.% 改为 %,则任何ip均可作为其从数据库来访问主服务器
mysql> exit;
重启mysqld systemctl restart mysqld
3. 查看主库状态
```bash
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position 主库的| Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master01.000002 | 319 | | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
4.从库配置
/etc/my.cnf
server_id=2
relay-log=slave01-relay-bin
relay-log_index=/var/lib/mysql/slave01-relay-bin.index
5.从库连接主库
mysql>change master to master_host='10.7.11.90',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master01.000002',master_log_pos=319;
#master_log_file='master01.000002',master_log_pos=319; 与主库信息对应
#启动slave数据同步
mysql> start slave;
#停止slave数据同步(若有需要)
mysql> stop slave;
6.查看salve信息
mysql> show slave status\G;
表示同步成功
测试
主库创建一个表
create database abc;
查看从库是否有这个表