读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。
MYSQL读写分离步骤:此原理需要三台机器192.168.2.141(主机),192.168.2.142(从机)以及192.168.2.143(mycat机)。
tar -xzvf jdk-8u161-linux-x64.tar.gz -C /usr/local/java
tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
4.环境变量文件vim /etc/profile配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
5.使用source命令使修改即时生效,无需重启服务器
source /etc/profile
6.验证:
server.xml配置(vim conf/server.xml)
<user name="root">
<property name="password">root</property>
<property name="schemas">nebula</property>
<property name="readOnly">false</property>
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table> </schema>
</privileges>
-->
</user>
schema.xm配置(vim conf/schema.xml配置)
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name=“nebula" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"/> <dataNode name="dn1" dataHost="auth" database=“nebula_cloud" />
<dataHost name="auth" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM" url="192.168.42.28:3306" user="root" password=“Nebula@123"> <readHost host="hostS1" url="192.168.42.29:3306" user="test" password=" Nebula@123 " /> </writeHost>
</dataHost>
</mycat:schema>