主从复制
192.168.187.129 主数据库 192.168.187.130 从数据库 192.168.187.131 从数据库
下载
Mycat官网:http://www.mycat.io/
安装
指令:tar -zxvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar
配置
Mycat的配置文件都在conf目录里面,这里介绍几个常用的文件:
如果想知道配置文件每一项什么意思可以去官网文档:http://www.mycat.io/document/mycat-definitive-guide.pdf
server.xml
示例
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>
主要注意上面用户这块,应该是配置文件最低,其他默认即可。
schema.xml
schema.xml是最主要的配置项,首先看我的配置文件。
没用到分表分片,我就注释掉了
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="mycat_tast"/>
<dataHost name="localhost1" 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="hostM1" url="192.168.187.129:3306" user="root" password="root">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.187.131:3306" user="root" password="root" />
<readHost host="hostS2" url="192.168.187.130:3306" user="root" password="root" />
</writeHost>
</dataHost>
参数解释:不明白的话可以去看官方解释,很全面的:http://www.mycat.io/document/mycat-definitive-guide.pdf
启动
进入到mycat的bin目录下执行
指令:./mycat start 启动
指令:./mycat stop 停止
指令:./mycat restart 重启
查看是否启动成功
进入到mycat的logs文件
指令:cat wrapper.log
如下即为成功
如果出现jvm超时的话,我的解决办法
我在家里笔记本没出任何问题,安装好就能启动,公司电脑出现此问题
查看你的主机名在/etc/hosts/里面是不是存在
编辑指令:vi /etc/hosts
编辑hosts文件,将主机名加到127.0.0.1后面,或者再起一行加上
格式:当前主机IP 主机名
再次启动就能登陆
此方法不管用的话,请自行百度
测试能否登录
链接出现此问题
如果mycat连接的是mysql8.x的话,需要修改一下你登陆账号的密码加密规则,在配置文件里面改貌似不好用。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
登陆测试
只读账号登录
打开数据库提示错误:unknown chartsetindex:255
在你的mysql配置文件my.cnf中加入
[mysqld]
character-set-server=utf8
如果是上述错误的话
把schema.xml里面的checkSQLschema="false" 改成 checkSQLschema="true"
完成!!
以上仅是我安装出的问题,其他问题的话,请自行百度
如果你每次修改了mysql的配置文件的话,记得重启要先重启主数据库,在重启从数据库,那样的话不用再修改主从配置
我记得没错的话是这样,不放心的话修改重启完之后在查询一下当前的主从状态。
测试的话,网上很多方法。 简单测试的话就是读写两个账号,读的账号只读,写的账号可以读可以写,基本上就可以了