-
MySQL读写分离是一种数据库架构模式,旨在通过分离数据库的读操作和写操作到不同的服务器上来提高数据库系统的性能和可扩展性
实现步骤:
JDK安装
1)上传jdk安装包
2)解压缩到/usr/local
tar zxvf 上传的jdk安装包 -C /usr/local
3) mv重命名为jdk8 (重命名解压后的文件)
4) 修改/etc/profile添加
export JAVA_HOME=/usr/local/jdk8
export PATH=$PATH:$JAVA_HOME/bin
5)生效
source /etc/profile
6) 测试
java -version
MyCat安装
1)上传mycat安装包
2)解压缩到/usr/local
3) 修改/etc/profile添加
export MYCAT_HOME=/usr/local/mycat
4)生效
source /etc/profile
5) 修改 /etc/hosts
mycat服务器ip mycat.com
主MYSQL的IP master.com
从MySQL的IP slave.com
6) 测试ping mycat.com ...
7)修改 conf/server.xml
#账号、密码、数据库名 (这个user不是同步的用户名)
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">testdb</property>
<property name="defaultScheddma">testdb</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">testdb</property>
<property name="readOnly">true</property>
<property name="defaultSchema">testdb</property>
</user>
8)修改conf/schema.xml
#(testdb是需要共享的库名)
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="testdb" checkSQLschema="true" sqlMaxLimit="100" dataNode='dn1'>
</schema>
<dataNode name="dn1" dataHost="host1" database="testdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- 指定写主机 -->
<writeHost host="hostM1" url="192.168.101.131:3306" user="root" password="123456">
<!-- 指定读主机 -->
<readHost host="hostS1" url="192.168.101.132:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
9) 到bin执行./mycat start 或 console
客户端测试
1)把mysql驱动包8.0.12复制到mycat/lib下
2) 设置权限777
3)把原有的5.1.35驱动包修改名称为xx.jar.bak
4) 修改/etc/my.cnf
[mysqld]加
sql_mode=""
default_authentication_plugin=mysql_native_password
5) 重启mysql
systemctl restart mysql
6) 登录
mysql -uroot -p123456 -h192.168.101.100 -P8066 --default_auth=mysql_native_password
2)打开conf/log4j2.xml
修改日志级别为debug ,取消注释 Console
<asyncRoot level="debug" includeLocation="true">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile"/>
</asyncRoot>
3)关闭重新启动mycat
./mycat console
配置完毕,重开窗口登录mycat
分别执行更新和查询操作,查看前面窗口的日志