Mysql自带的主从复制功能,是为了实现降低单机数据库的压力,实现修改都在主数据库修改,但读的时候可以在从数据库读取到,这就需要主数据库和从数据库的数据保持一致。
实现主从复制的过程:
Mysql主从数据库复制的基础是二进制日志文件(binary log file),主服务器开启二进制文件,作为master,会把数据修改等操作作为“事件”的形式记录在二进制文件中,从服务器通过IO线程时刻监控二进制文件的变化,并读取内容,复制到自己的中继日志中,然后再开启自己的线程把中继日志中的内容在自己的数据库中执行,自此实现了主从数据库的一致性,“异步”实现。
操作过程:
主数据库:
开启二进制日志文件。 log-bin=mysql-bin
设置server-id,保证与从服务器不同。 server-id=1
创建用于同步的用户账号(从服务器登陆访问日志使用) create user 'repl'@'XXX.XX.XX.XX' identified by 'slavepass';
分配权限 grant replication slave on *.* to 'repl'@'XXX.XX.XX.XX';
查看master状态,找到二进制文件名和位置 show master status;
从数据库:
修改mysql配置 server-id=2
执行同步语句 change master to MASTER_HOST="XXX.XXX.XX.XX",
MASTER_USER='rep1',
MASTER_POSSWORD='slavepass',
MASTER_LOG_FILE='日志文件名',
MASTER_LOG_POS=位置;
启动slave同步进程 start slave
查看slave状态 show slave status\G;
也可以设置不同步哪些数据库 binlog-ignore-db= mysql
参考链接:https://www.cnblogs.com/gl-developer/p/6170423.html