Products
GG网络技术分享 2025-11-25 00:43 3
嘿嘿, 今天我们要讲的是怎么把MySQL数据库分开,这样Java项目就Neng跑得geng迅速geng稳哦!
MySQL数据库就像一个巨大巨大的储物柜,我们的Java项目全部的数据dou放在里面。但是有时候储物柜太巨大,东西太许多,就会变得hen磨蹭,而且还轻巧松恶劣。所以我们要把它分开,这样个个储物柜dou不太满,就Neng跑得geng迅速geng稳啦!

第一步,我们要准备两个储物柜,一个巨大的,一个细小的。巨大的储物柜就是主库,负责写东西;细小的储物柜就是从库,负责kan东西。这样,写东西的时候,我们就去巨大的储物柜,kan东西的时候,我们就去细小的储物柜。
先说说我们要在电脑上安装MySQL数据库。安装优良了之后我们要配置两个储物柜,让它们Neng互相kan到对方。这玩意儿过程有点像两个细小朋友手拉手,让他们晓得对方在哪里。
有一次我们在操作过程中不细小心弄错了后来啊两个储物柜不Neng手拉手了。我们只优良沉新鲜来过沉新鲜设置它们的位置。
我们Neng通过一些命令来检查。Ru果kan到两个储物柜dou在正常干活,那就说明它们设置优良了。
Sharding-JDBC就像是一个超级助手,它Neng帮我们轻巧松地管理两个储物柜。我们只需要告诉它哪个储物柜负责写,哪个负责kan,它就会帮我们处理优良一切。
我们通过分离MySQL数据库, 用两个储物柜来分担干活,这样Java项目就Neng跑得geng迅速geng稳了。而且,我们还用Sharding-JDBC这玩意儿超级助手来帮忙,让整个过程变得geng轻巧松。
优良了今天的内容就到这里啦!希望巨大家dou学会了怎么通过分离MySQL数据库来提升Java项目的性Neng与稳稳当当性哦!
服务器:
这玩意儿的时候还不用退出MySQL, 基本上原因是下面的命令还是SQL命令,施行下面的SQL,Neng拿到我们后面需要的两个关键参数。
mysql数据库你打包出来的只是一个连接, 数据是无法打包的,参数说明:
这时我们就Neng对我们项目中的配置进行一个测试,下面分别调用一个geng新鲜接口和一个查询接口,通过查kan日志中记录的数据源来判断是不是Neng够按照我们预料中的跑。
登录进去MySQL之后才Neng够施行下面的命令, 基本上原因是这是SQL命令
这是狗子在操作过程中搞出来的一个错误……
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功Neng。就是一台或许多台MySQL数据库从另一台MySQL数据库进行日志的复制, 然后再解析日志并应用到自身,到头来实现从库的数据和主库的数据保持一致。MySQL主从复制是 MySQL数据库自带功Neng,无需借助第三方工具。
在application.yml中许多些数据源的配置
但还是需要安装。。没有办法弄在一起。。
这里就不给巨大家展示数据库的安装和防火墙的操作了 这玩意儿我感觉网上优良许多材料douNeng够满足遇到的问题,在搭建主从库的时候有在网上见到过说MySQL版本要一致的,我也没太留意直接就在之前的MySQL上操作了巨大家Neng自己去验证一下。
为了解决上述提到的两个问题, 我们Neng准备两 台MySQL,一台主服务器,一台从服务器,主库的数据变geng,需要同步到从库中 。而用户在访问我们项目时 Ru果是写操作,则直接操作主库;Ru果是读操作,则直接操作从库,这种结构就是读写分离啦。
这里有三个方法douNeng沉启MySQL, Zui轻巧松的无疑就是一关一开:
Sharding-JDBC具有以下几个特点:
施行完这一句SQL之后==不要再操作主库!==关键的事情说三遍, 基本上原因是再操作主库之后兴许会弄得红框中的两个属性值会发生变来变去,后面Ru果发生了错误兴许就和这里有那么两毛钱关系了。
Ru果有用spring的话试试继承AbstractRoutingDataSource。具体Neng上网查查。
下面我们将用ShardingJDBC在项目中实现MySQL的读写分离。
这里要注意server-id和主库以及其他从库dou不Neng相同,否则后面将会配置不成功。
Sharding-JDBC定位为轻巧量级Java框架,在Java的JDBC层给的额外服务。它用客户端直连数据库, 以jar包形式给服务,无需额外部署和依赖,可搞懂为增有力版的JDBC驱动,彻头彻尾兼容JDBC和各种ORM框架。
Ru果结实性的打包。
在pom.xml文件中导入ShardingJDBC的依赖坐标
我们项目在用,还不错吧。
只有把你的管理系统源码与你的数据库表创建方式与mysql安装包一起打包。之后链接写默认。
这玩意儿的时候还不用退出MySQL, 基本上原因是下面的命令还是SQL命令,施行下面的SQL,Nengkan到从库的状态信息。通过状态信息中的Slave_IO_running和Slave_SQL_runningNengkan出主从同步是不是就绪, Ru果这两个参数全为Yes,表示主从同步Yi经配置完成。
这兴许是由于linux是复制出来的, MySQL中还有一个server_uuid是一样的,我们也需要修改。vim /var/lib/mysql/auto.cnf
出错的原因是在主库中删除了用户信息, 但是在从库中同步的时候输了弄得同步打住下面记录自己的操作。
这得就是各位巨大牛设置server_id的时候不细小心设置相同的id了 修改过来就行,步骤在上面的配置中。
搞定!!!程序正常按照我们预期的成功跑起来了成功借助ShardingJDBC在我们项目中实现了数据库的读写分离。
二进制日志记录了全部的DDL语句和DML语句,但是不包括数据查询语句。此日志对于灾困难时的数据恢复起着极其关键的作用,MySQL的主从复制,就是通过该binlog实现的。默认MySQL是未开启该日志的。
用Sharding-JDBCNeng在程序中轻巧松的实现数据库读写分离。
在周围搭建之前, 我们需要准备优良两台服务器,Ru果生活有钱裕用的是两台云服务器的时候想起来要开放平安组,即防火墙;Ru果是比狗子我生活优良点但也是用的虚拟机的话,想起来别分这么许多内存启动蓝屏了
在数据库中操作时一定要注意当前所在的数据库是哪个,作为一个良优良的实践:在SQL语句前加USE dbname。
在这种读写分离的结构中,从库是Neng有优良几个的
不Neng。
但我们仔细kankan我们会找到,当我们的项目dou是用的单体数据库时那么就兴许会存在如下问题:
Demand feedback