1、安装mysql数据库
192.168.1.121
192.168.1.51
192.168.1.52
本案例数据库统一的
用户名:root
密码:root123456
2、下载mycat
传到121服务器,解压即可
3、mycat依赖jre,所以先配置jdk,jre
4、mycat中schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!-- auto sharding by id (long) -->
<table name="goods" primaryKey="ID" type="global" dataNode="dn1" />
<table name="people" primaryKey="ID" type="global" dataNode="dn2" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db2" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<!-- 主服务器1,用来写 -->
<writeHost host="hostM1" url="192.168.1.121:3306" user="root" password="root123456">
<!-- 从服务器1,用来读 -->
<readHost host="hostS1" url="192.168.1.52:3306" user="root" password="root123456" />
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM2" url="192.168.1.51:3306" user="root"
password="root123456">
</writeHost>
</dataHost>
</mycat:schema>
server.xml的部分配置如下:(基本不用改动)
5、启动mycat
mycat的bin目录 使用命令
sh mycat start / restart /stop/status
用Navicat连接数据库
手动在mycat中建立goods,people表
6、主从数据库设置
登录主数据库121
第一步:修改my.cnf文件:
在[mysqld]段下添加:
binlog-do-db=db1 binlog-ignore-db=mysql #启用二进制日志 log-bin=mysql-bin #服务器唯一ID,一般取IP最后一段 server-id=121 |
第二步:重启mysql服务
service mysql restart
第三步:建立帐户并授权slave
mysql>GRANT FILE ON *.* TO 'root'@'%' IDENTIFIED BY 'root123456';
注意:有时候会出现错误
错误:ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';
然后更改配置mysql中的user表中的grant 改为yes;
#一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全
刷新权限
mysql> FLUSH PRIVILEGES;
登录从数据库52
第一步:修改my.cnf文件
[mysqld]
server-id=52
第二步:配置从服务器
change master to master_host='192.168.1.121',master_port=3306,master_user='root',master_password='root123456',master_log_file='mysql-bin.000001',master_log_pos=10906;
第二步:启动从服务器复制功能
start slave;
第三步:检查从服务器复制功能状态
show slave status;// Slave_IO_Running | Slave_SQL_Running 都为YES
手动创建数据库,表。
在mycat中增加数据,121中是主数据库,用来写数据;52是从数据库,用来读数据。
测试:成功
参考文献
https://www.cnblogs.com/zmoumou/p/9650969.html