mysql通过没有cat实现读写分离

主从复制

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的配置文件的话,记得重启要先重启主数据库,在重启从数据库,那样的话不用再修改主从配置

我记得没错的话是这样,不放心的话修改重启完之后在查询一下当前的主从状态。

测试的话,网上很多方法。  简单测试的话就是读写两个账号,读的账号只读,写的账号可以读可以写,基本上就可以了

猜你喜欢

转载自blog.csdn.net/qq_39900178/article/details/84926200
今日推荐