一首先配置mysql的主从复制,这里Windows下做主服务器,centos做从服务。
1.Windows下配置mysql为主服务器,修改mysql安装路径下的my.ini配置文件
server-id=1
#如果以下配置项导致服务无法启动,要查看配置项是否有空格,详情请查看data文件夹下的err日志
log-bin=log
#要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-do-db=test
#要忽略的数据库
binlog-ignore-db=mysql
配置完成后重启mysql服务,如果报错,查看mysql安装文件下的data文件夹里的err文件查看详细内容
2.Centos7配置mysql从服务。
修改/etc/my.cnf文件,添加
server-id=2
#要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
replicate-do-db=test
#要忽略的数据库
replicate-ignore-db=mysql
然后登录mysql,执行以下命令
change master to master_host='192.168.1.128',master_port=3306,master_user='mstest',master_password='123456'
重启服务,然后在主服务器上新增一条数据,在从服务器上查询成功则表示主从配置成功。
二、配置mycat的读写分离,这里在centos7下配置mycat
1.mycat主要配置 server.xml、rule.xml、schema.xml等三个配置文件,首先在mycat安装路径下找到这三个配置文件,
首先配置server.xml
<user name="root">
<property name="password">123456</property>
<property name="schemas">TEST</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>
schemas 数据库名,这里会和schema.xml中的配置关联,多个用逗号分开,例如需要这个用户需要管理两个数据库db1,db2,则配置db1,db2
2.配置schema.xml
<!-- 数据库配置,与server.xml中的数据库对应 -->
<schema name="TEST" checkSQLschema="true" sqlMaxLimit="100">
<table name="user" dataNode="dn1" />
<table name="user_role" dataNode="dn1" />
<table name="user_perimission" dataNode="dn1" />
<table name="role" dataNode="dn1" />
<table name="perimission" dataNode="dn1" />
</schema>
<!-- 分片配置 -->
<dataNode name="dn1" dataHost="test1" database="test" />
<!-- 物理数据库配置 -->
<dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user();</heartbeat>
<writeHost host="hostM1" url="192.168.1.128:3306" user="root" password="root">
<readHost host="hostM1" url="127.0.0.1:3306" user="root" password="root"> </readHost>
</writeHost>
</dataHost>
schema中的name要与server中的相对应,table标签中的name为物理数据库的数据表名。
修改完成之后,启动mycat
启动命令为安装路径 bin目录下执行
./mycat start
重启
./mycat restart
停止
./mycat stop
启动完成之后,进行测试如果报错,则去mycat安装路径下的conf查看wrapper.log文件查看详细信息,如果报错,无法连接mysql服务的话,使用命令行的形式登录mysql查看mysql是否可以登录成功,不可以则使用命令行的方式修改代码。
ps:报错没有找到数据源,往往是因为用户名密码无法登录,所以要使用命令行来检测,不要使用可视化工具(Navicat),因为Navicat可以登录dos命令不一定