`

mysql的主从同步、读写分离的认知

 
阅读更多



 以上是数据库的主从同步和读写分离的架构和流程图

 

 


 

以上是主从同步的原理图,通过日志来实现,所以需要设置打开mysql的二进制日志机制

 

 

mysql的主从同步配置

一台主mysql,ip为192.168.209.128

一台从mysql,ip为192.168.209.130

 

步骤一:修改主mysql的配置文件my.cnf,在[mysqld]下添加以下参数,然后重启mysql

log-bin = mysql-bin-log      #开启二进制日志,二进制日志的文件名,可以自行设置

        server-id       = 1          #设置mysql_id,主从不能相同

binlog-do-db = test          #设置二进制日志记录的库,也就是需要主从同步的数据库,需要与从的设置一致

binlog-ignore-db = mysql     #设置二进制日志不记录的库

sync_binlog = 1

innodb_flush_log_at_trx_commit = 1

 

步骤二:在主mysql中添加主从同步的账号,其中域名为从mysql的地址,这里我们添加用户名为is_slave,密码为is_slave123的用户

        GRANT REPLICATION SLAVE ON *.* TO 'is_slave'@'192.168.209.130' IDENTIFIED BY 'is_slave123';

 

步骤三:在步骤一中,我们设置了主mysql的二进制日志文件的存储名称,这个二进制文件会记录主mysql对需要同步的数据的操作

        进入主mysql中输入:show master status  查看刚设置的情况,该设置的结果待会会用于从mysql的设置

 

步骤四:同样设置从mysql的配置文件my.cnf,在[mysqld]下添加以下参数,然后重启mysql

log-bin = mysql-bin-log      #二进制日志的文件名,可以自行设置

        server-id       = 2          #设置mysql_id,主从不能相同

binlog-do-db = test          #设置二进制日志记录的库,也就是需要主从同步的数据库,需要与主的设置一致

binlog-ignore-db = mysql     #设置二进制日志不记录的库

sync_binlog = 1

innodb_flush_log_at_trx_commit = 1

 

步骤五:由于从mysql是通过读取主mysql的二进制日志来同步数据,所以需要配置与主mysql的连接

        CHANGE MASTER TO MASTER_HOST='192.168.209.128', MASTER_USER='is_slave', MASTER_PASSWORD='is_slave123', MASTER_LOG_FILE='mysql-bin-log.000029', MASTER_LOG_POS=106;

        其中,MASTER_HOST为主mysql的地址,

MASTER_USER为步骤二中设置的主从同步账号的用户名,

MASTER_PASSWORD为步骤二中设置的主从同步账号的密码,

MASTER_LOG_FILE为步骤三中通过show master status查看到的数据项中“File”的值

MASTER_LOG_POS为步骤三中通过show master status查看到的数据项中“Position”的值

 

步骤六:最终启动从mysql,在mysql中执行命令:start slave

 

判断是否成功实现主从同步,可以查看从mysql的错误日志:mysqld.log,如果存在以下记录:Slave I/O thread: connected to master 'is_slave@192.168.209.128',  replication started in log 'mysql-bin-log.000029' at position 106,则配置成功

配置成功后,先让主从mysql中的同步库表数据都一致,接下来,只要在主mysql中对同步库进行的操作都会同步到从mysql中去

 


 

  • 大小: 91.9 KB
  • 大小: 32.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics