Mycat读写分离失败(一主一从)尝试解决
项目场景:Mycat读写分离失败(一主一从)
问题描述
主从数据库关联完之后,对mycat的配置也完成了,可能由于我没有一次性成功修改 /usr/local/mycat/conf/schema.xml文件,最终使用一下命令发现读写分离失败
[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show @@datasource;'
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | hostM1 | mysql | 192.168.200.20 | 3306 | W | 0 | 10 | 1000 | 28 | 3 | 1 |
| dn1 | hostS1 | mysql | 192.168.200.30 | 3316 | R | 0 | 0 | 1000 | 0 | 0 | 0 |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
正常来说表格中的READ_LOAD应该在hostS1有数据,WRITE_LOAD应该在hostM1有数据
解决思路:
1.重启服务
2.查看日志(/usr/local/mycat/logs/wrapper.log)
尝试解决:
1.重启
MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| USERDB |
+----------+
1 row in set (0.001 sec)MySQL [(none)]> use USERDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
MySQL [USERDB]> select * from company ;
+----+----------+------+
| id | name | addr |
+----+----------+------+
| 1 | facebook | usa |
| 2 | cbook | usa |
+----+----------+------+
2 rows in set (0.005 sec)MySQL [USERDB]> insert into company values(3,"cbook","usa");
Query OK, 1 row affected (0.003 sec)MySQL [USERDB]> Bye
[root@mycat ~]#
[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show @@datasource;'
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | hostM1 | mysql | 192.168.200.20 | 3306 | W | 0 | 10 | 1000 | 27 | 2 | 1 |
| dn1 | hostS1 | mysql | 192.168.200.30 | 3316 | R | 0 | 0 | 1000 | 0 | 0 | 0 |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
失败
2.查看日志
INFO | jvm 1 | 2022/03/22 17:58:45 | 2022-03-22 17:58:45,809 [INFO ][$_NIOConnector] no ilde connection in pool,create new connection for hostS1 of schema test (io.mycat.backend.datasource.PhysicalDatasource:PhysicalDatasource.java:413)
INFO | jvm 1 | 2022/03/22 17:58:45 | 2022-03-22 17:58:45,809 [INFO ][$_NIOConnector] close connection,reason:java.net.ConnectException: Connection refused ,MySQLConnection [id=0, lastTime=1647986325802, user=root, schema=test, old shema=test, borrowed=false, fromSlaveDB=true, threadId=0, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.200.30, port=3316, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.net.AbstractConnection:AbstractConnection.java:508)
INFO | jvm 1 | 2022/03/22 17:58:45 | 2022-03-22 17:58:45,809 [INFO ][$_NIOConnector] can't get connection for sql :select user() (io.mycat.sqlengine.SQLJob:SQLJob.java:114)
挑出日志的重点:
connection for hostS1
close connection,reason: .... port=3316,
有两个重点词—— hostS1和 port=3361,那就简单了,就是 /usr/local/mycat/conf/schema.xml有个地方没修改
查看一下 /usr/local/mycat/conf/schema.xml
[root@mycat ~]# vi /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema><dataNode name="dn1" dataHost="localhost1" database="test" /><dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.200.20:3306" user="root"password="123456"><readHost host="hostS1" url="192.168.200.30:3316" user="root"password="123456" /></writeHost></dataHost>
</mycat:schema>
果然看到第13行端口号没改过来,应该改成3306的,这里改完再试一下
[root@mycat ~]# /bin/bash /usr/local/mycat/bin/mycat stop
Stopping Mycat-server...
^[[AStopped Mycat-server.
[root@mycat ~]# /bin/bash /usr/local/mycat/bin/mycat start
Starting Mycat-server...
[root@mycat ~]# mysql -h127.0.0.1 -P8066 -uroot -p123456;
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (OpenCloundDB)Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| USERDB |
+----------+
1 row in set (0.002 sec)MySQL [(none)]> use USERDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
MySQL [USERDB]> select * from company ;
+----+----------+------+
| id | name | addr |
+----+----------+------+
| 1 | facebook | usa |
| 2 | cbook | usa |
| 3 | cbook | usa |
+----+----------+------+
3 rows in set (0.026 sec)MySQL [USERDB]> insert into company values(4,"cbook","usa");
Query OK, 1 row affected (0.003 sec)MySQL [USERDB]> select * from company ;
+----+----------+------+
| id | name | addr |
+----+----------+------+
| 1 | facebook | usa |
| 2 | cbook | usa |
| 3 | cbook | usa |
| 4 | cbook | usa |
+----+----------+------+
4 rows in set (0.001 sec)MySQL [USERDB]> Bye
[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show @@datasource;'
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | hostM1 | mysql | 192.168.200.20 | 3306 | W | 0 | 10 | 1000 | 14 | 0 | 1 |
| dn1 | hostS1 | mysql | 192.168.200.30 | 3306 | R | 0 | 4 | 1000 | 9 | 3 | 0 |
+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
成功解决!!!
总结
查日志是解决问题的好办法(确信)。
Mycat读写分离失败(一主一从)尝试解决相关推荐
- Mycat 读写分离、主从切换、分库分表的操作记录
Mycat 读写分离.主从切换.分库分表的操作记录 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等 ...
- Mycat读写分离、主从切换、分库分表的操作记录 https://www.cnblogs.com/kevingrace/p/9365840.html
[此篇文章写得不错] 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问 ...
- MyCat读写分离-笔记(四)
概述 Mycat能够实现数据库读写分离,不能实现主从同步,数据库的备份还是基于数据库层面的.Mycat只是数据库的中间件: Mycat读写分离配置 在MySQL中间件出现之前,对于MySQL主从集群, ...
- 应用 | 同学,该学MyCat实际应用案例与MyCat读写分离了
Hi!我是小小,一个双鱼座的佛系程序猿,今日的blog将会写关于MyCat最后一点学习内容,读写分离,与MyCat实际应用案例和一个小小的例子. MyCat 读写分离 MyCat的读写分离是建立在My ...
- Mycat读写分离笔记Windows
Mycat读写分离笔记Windows 自己搭了一个运用Mycat中间件搭建了一个读写分离的demo,昨晚还在奋战当中,因为连接mycat的时候老是报错:No Mycat DataBases selec ...
- Mycat 读写分离实战
Mycat读写分离实战 一.主从复制搭建 1.实验环境 搭建一主一从的部署架构,master(主库)运行在阿里云服务器 47.108.136.201,slave(从库)运行在 IP 地址为 12.16 ...
- Mycat读写分离的简单实现
文章目录 1.Mycat读写分离的配置 1.1.Mycat是什么 1.2.Mycat能干什么 1.2.1.数据库的读写分离 1.2.1.1.数据库读写分离图解 1.2.2.数据库分库分表 1.2.2. ...
- MyCat 读写分离
MyCat 读写分离 MyCat其他核心介绍参考: 主从复制的搭建参考: 1 介绍 MyCat的读写分离是建立在MySQL主从复制基础之上实现的,所以必须先搭建MySQL的主从复制. 数据库读写分离对 ...
- mycat读写分离配置
为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个 ...
最新文章
- 给自己的程序添加BugReport
- 可视化Spring开发插件 Spring IDE
- python中的JSON到底怎么用?
- centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置
- MyBatis缓存通俗易懂
- IntelliJ IDEA配置与搭建web项目入门使用
- ASP.NET会话(Session)模式
- 19. Treat class design as type design
- mysql重复执行命令_mysql----------mysql的一些常用命令
- visio插入箭头_visio流程图中画箭头
- 计算机硬盘使用寿命,固态硬盘怎么测剩余寿命?SSD固态硬盘使用寿命检测方法...
- Java输入/输出(I/O)流
- 【锟斤拷】的故事:谈谈汉字编码和常用字符集
- 基于mina框架的GPS设备与服务器之间的交互
- 数字电路-逻辑式化简公式
- 火车采集器V2010免费版下载
- React 生成二维码
- 华为诺亚方舟实验室简述
- 新浪微博终于完成多数ui
- 数据管理和计算机网络,计算机网络数据管理
热门文章
- USACO 2.3.2 Cow Pedigrees 奶牛家谱
- FUTURES模型 | 5. Potential 潜力子模块
- 什么是云计算解决方案架构师
- 用canvas实现钟表功能
- mysql如何查看表结构图_MySQL 查看表结构简单命令
- 关于windows更新后显示未激活的问题
- 计算机网络有效子网怎么求,计算机网络·计算子网地址,子网掩码,广播地址,根据子网掩码求网络地址详解...
- [C++]BMI指数
- 遵义虚拟服务器,遵义市云服务器费用
- idea无法通过debug启动项目