和wordpress差不多呢,seo外包团队,浙江省城乡和建设厅网站首页,网站建设 三门峡1、主从复制原理MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后#xff0c;其作为master#xff0c;它的数据库中所有操作都会以“事件”的方式记录在二进制日志中#xff0c;其他数据库作为slave通过一个I/O线程与主服务…1、主从复制原理MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后其作为master它的数据库中所有操作都会以“事件”的方式记录在二进制日志中其他数据库作为slave通过一个I/O线程与主服务器保持通信并监控master的二进制日志文件的变化如果发现master二进制日志文件发生变化则会把变化复制到自己的中继日志中然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中以此实现从数据库和主数据库的一致性也就实现了主从复制。实践准备工作主数据库服务器(master)192.168.128.164MySQL已经安装并且无应用数据。从数据库服务器(slave)192.168.128.167MySQL已经安装并且无应用数据。主数据库master配置修改mysql配置文件重启mysql并创建用于同步的用户账号vi /etc/my.cnf在[mysqld]部分插入以下两行配置log-binmysql-bin #开启二进制日志server-id1 #设置server-id 需唯一12打开mysql会话shellmysql -uroot -proot创建用户用户slave 密码slave注意ip为slave的地址CREATE USER slave192.168.128.167 IDENTIFIED BY slave;1分配权限GRANT REPLICATION SLAVE ON *.* TO slave192.168.128.167;flush privileges; #刷新权限12查看master状态并记录二进制文件名(mysql-bin.000001)位置(106)从数据库slave配置修改mysql配置文件重启mysql打开mysql会话执行同步SQL语句(需要主服务器主机名登陆凭据二进制文件的名称和位置)启动slave同步进程查看slave状态重启服务service mysqld restartmysql show master status;------------------------------------------------------------| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |------------------------------------------------------------| mysql-bin.000001 | 106 | | |------------------------------------------------------------1 row in set (0.00 sec)12345678vi /etc/my.cnf在[mysqld]部分插入以下一行配置server-id2 #设置server-id 需唯一mysql CHANGE MASTER TOMASTER_HOST192.168.128.164,MASTER_USERslave,MASTER_PASSWORDslave,MASTER_LOG_FILEmysql-bin.000001,MASTER_LOG_POS106;1234567start slave;mysql show slave status\G;*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.128.164Master_User: slaveMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 106Relay_Log_File: mysqld-relay-bin.000002Relay_Log_Pos: 2511234567891011主从配置完成可以通过主库建库建表插入数据测试读写分离Mysql新版驱动类ReplicationDriver实现读写分离准备工作需搭建好mysql主从集群实现目标使数据写入到master读数据时从slave中读取原理使用mysql驱动自带的replicationDriver来实现replicationDriver简单来说就是存在两个Connection一个masterConnection一个slaveConnection当setReadonly(true)就把currentConnectionslaveConnection反之设置为masterConnection触发条件读操作需设置 readOnly 为 true实现步骤applicationContext.xmlRelay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:读操作需设置readonlytrue测试数据库中间件如mysql-proxy、mycat等---------------------作者Elk_love_madness原文https://blog.csdn.net/qq_38928944/article/details/85341616版权声明本文为博主原创文章转载请附上博文链接