公司的网站建设费用怎么入账,网站域名怎么做,建设银行人力资源系统网站,php自己写框架做网站6读写分离
1.问题说明 2.读写分离 Master#xff08;主库#xff09;----(数据同步)— Slave#xff08;从库#xff09; Mysql主从复制 mysql主从复制 介绍 mysql主从复制是一个异步的复制过程#xff0c;底层是基于mysql数据库自带的二进制日志功能。就是一台或多台…读写分离
1.问题说明 2.读写分离 Master主库----(数据同步)— Slave从库 Mysql主从复制 mysql主从复制 介绍 mysql主从复制是一个异步的复制过程底层是基于mysql数据库自带的二进制日志功能。就是一台或多台mysql数据库Slave即从库从另一台mysql数据库Master即主库进行日志的复制然后再解析日志并应用到自身最终现实从库的数据和主库的数据保持一致。mysql主从复制是mysql数据库自带功能无需借助第三方工具mysql复制过程分成三步 Master将改变记录二进制日志binary logSlave将Master的binary log拷贝到它的中继日志relay logSlave重做中继日志中的事件将改变应用到自己的数据库中 配置 配置–前置条件 提前准备好两台服务器分别安装mysql并启动服务成功 主库Master 服务器ip从库Slave 服务器ip 配置-主库Master 第一步修改MySQL数据库的配置文件 /etc/my.cnf [mysqld] log-binmysql-bin #[必须]启用二进制日志 server-id 100 #[必须]服务器–ID 第二步重启mysql服务 systemctl restart mysqld 第三步登录mysql数据库执行下面sql GRANT REOLICATION SLAVE ON *.* to xiaoming% identified by Root123456;注上面sql的作用是创建一个用户xiaoming。密码Root123456并且给xiaoming用户授予REPLICATION SLAVE权限常用于建立复制时所需要用到的用户权限也就是Slave必须被Master授权具有该权限的用户才能通过该用户复制。 报错-----解决如下 mysql GRANT REOLICATION SLAVE ON *.* to xiaoming% identified by Root123456;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near REOLICATION SLAVE ON *.* to xiaoming% identified by Root123456 at line 1mysql create user xiaoming identified by Root123456- ;
Query OK, 0 rows affected (0.00 sec)mysql grant replication slave on *.* to xiaoming- ;
Query OK, 0 rows affected (0.00 sec)第四步登录mysql数据库执行下面sql记录下结果中File和Position的值 show master status;、 注意上面sql的作用是查看Master的状态执行完此sql后不要再执行任何操作 配置–从库Slave 第一步修改MySQL数据库的配置文件/etc/my.cnf server-id 101 #[必须]服务器--ID第二步重启mysql服务 systemctl restart mysqld第三步登录MySQL数据库执行下面sql change master to
master_host主库ip地址,master_userxiaoming,master_passwordRoot123456,master_log_filemysql-bin.000001,master_log_pos603;start slave;注意如果报a running slave io thread的错那么我们需要使用 stop slave;来停止这个异常 第四步登录mysql数据库执行下面sql查看从数据库的状态 show slave status;读写分离案例 背景 背景 面对日益增加的系统访问量数据库的吞吐量面临着巨大瓶颈。对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说将数据库拆分为主库和从库主库负责处理事务性的增删改操作从库负责处理查询操作能够有效的避免由数据更新导致的行锁使得整个系统的查询性能得到极大的改善 sharding-JDBC介绍 Sharding-JDBC定位为轻量级java框架在java的JDBC层提供额外服务。它使用客户端直连数据库以jar包形式提供服务无需额外部署和依赖可理解为增强版的JDBC驱动完全兼容JDBC和各种ORM框架 使用sharding-JDBC可以在程序中轻松的实现数据库读写分离。 适用于任何基于JDBC的ORM框架JPAHibernateMyBatisSpring JDBC Template或直接使用JDBC。支持任何第三方的数据库连接池如DBCPC3P0BoneCPDruidHikariCP等。支持任意实现JDBC规范的数据库目前支持MySQLOracleSQLServerPostgreSQL以及任何遵循SQL92标准的数据库 dependencygroupIdorg.apache.shardingsphere/groupIdartifactIdsharding-jdbc-spring-boot-starter/artifactIdversion4.0.0-RC1/version
/dependency入门案例 使用sharding-JDBC实现读写分离步骤 导入maven坐标 dependencygroupIdorg.apache.shardingsphere/groupIdartifactIdsharding-jdbc-spring-boot-starter/artifactIdversion4.0.0-RC1/version/dependency在配置文件中配置读写分离规则 spring:shardingsphere:datasource:names:master,slave# 主数据源master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://主库ip地址:3306/rw?characterEncodingutf-8username: rootpassword: root# 从数据源slave:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/rw?characterEncodingutf-8username: rootpassword: 12345678masterslave:# 读写分离配置load-balance-algorithm-type: round_robin #轮询# 最终的数据源名称name: dataSource# 主库数据源名称master-data-source-name: master# 从库数据源名称列表多个逗号分隔slave-data-source-names: slaveprops:sql:show: true #开启SQL显示默认falsemain:allow-bean-definition-overriding: true在配置文件中配置允许bean定义覆盖配置项 main:allow-bean-definition-overriding: true功能测试 查询功能测试操作Slave 插入数据功能测试操作Master项目实现读写分离 数据库环境准备主从复制代码改造功能测试