mysql 主从同步配置

使用centos 配置完成mariadb后 验证登录:

创建用户:

GRANT ALL PRIVILEGES ON *.* TO xxx@"%" IDENTIFIED BY 'xxx.sr' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO xxx@"localhost" IDENTIFIED BY 'xxx.sr' WITH GRANT OPTION;

配置主服务器

编辑主master服务器配置文件/etc/my.cnf

[mysqld]节点下加入两句话:

server-id=1         # 表示服务器的ID,此为唯一机器标识。
log-bin=mysql-bin        # 启用二进制日志;表示开启bin-log日志功能,这样I/O才会将日志复制到从机的rely-log中。
binlog-do-db=test     # 标识对指定数据库做日志记录,如果对多个数据库做日志记录,需加','分隔。
binlog-ignore-db=mysql  # 标识不对指定数据库做日志记录

然后重启服务:systemctl restart mariadb

登录mysqlmysql –uroot -proot

mysql>show master status;    #查看MASTER状态(这两个值FilePosition)其中的file就是二进制文件,position记录当前操作sql的步骤数(注意一条sql包含多步,所以不是sql语句的条数)

一般情况下,第一次显示position的数量是120

配置从服务器:

修改/etc/my.cnf增加一行

log-bin=mysql-bin
server-id=2
replicate-do-db = 同步的数据库
replicate-ignore-db = 非同步的数据库

然后重启服务器

systemctl restart mariadb

通过mysql命令配置同步日志的指向:

 

mysql>change master to master_host=192.168.41.41’,master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=120;

master_host        主服务器的IP地址(内网地址)

master_port        主服务器的PORT端口

master_log_file    和主服务器show master status中的File字段值相同

master_log_pos        和主服务器show master status中的Position字段值相同

mysql>start slave;                #stop slave;停止服务,出错时先停止,再重新配置
mysql>show slave statusG;        #查看SLAVE状态,G结果纵向显示。必须大写,这个命令无法再sqlyog中使用

如果出现问题:error connecting to master 'root@192.168.41.41:3306' - retry-time: 60 retries: 86400 message: Access denied for user 'root'@'192.168.41.42' (using password: YES)

建议:

mysql>stop slave;
###更改使用之前创建用户
mysql>change master to master_host=192.168.41.41’,master_port=3306,master_user='xxx',master_password='xxx.sr',master_log_file='mysql-bin.000001',master_log_pos=120;

slave_io_running:表示同步日志的io进程

slave_sql_running:表示执行同步sql命令的进程

这个2个必须为yes,否则表示配置失败(如果配置失败请检查3306端口是否有对外开放)

systemctl restart mariadb //重启服务器

测试: 主服务器创建数据表添加数据 看从数据库是否同步

主库创建 删除数据库,查看观察日志

user@localhost [(none)]> show binlog events in 'mysql-bin.000045';
+------------------+-----+-------------+-----------+-------------+----------------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                         |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------+
| mysql-bin.000045 |   4 | Format_desc |         1 |         245 | Server ver: 5.5.65-MariaDB, Binlog ver: 4    |
| mysql-bin.000045 | 245 | Query       |         1 |         356 | create database `zhu_demo`character set utf8 |
| mysql-bin.000045 | 356 | Query       |         1 |         447 | drop database `zhu_demo`                     |
| mysql-bin.000045 | 447 | Query       |         1 |         558 | create database `zhu_cong`character set utf8 |
| mysql-bin.000045 | 558 | Query       |         1 |         645 | create database darren                       |
| mysql-bin.000045 | 645 | Query       |         1 |         732 | drop database `darren`                       |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------+
6 rows in set (0.00 sec)
原文地址:https://www.cnblogs.com/l-zl/p/9712116.html