MyCAT上新增一个库及MyCAT报错1184的问题及解决

 更新时间:2023年11月07日 09:43:09   作者:世樹  
这篇文章主要介绍了MyCAT上新增一个库及MyCAT报错1184的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景介绍

前两天因业务需要,需在现有的一套MyCAT下新增一个业务系统节点,已知当前MyCAT上有库aaa,bbb,ccc,现要新增库iris,以便在mycat-admin上进行跨库查询业务。

步骤一 

第一步,准备一台服务器,安装好新业务需要的数据库服务,新建一个db。

建好后,登录到db里,如下:

我的新业务所在服务器ip是 1.1.1.56, db是 iris :

第二步,在mycat服务器上conf目录上,修改配置文件内容,修改对象如下:

要把这个服务器加入到Mycat节点中,需要修改的地方有四个:

①schema.xml文件中,新增<schema>…</schema>内容

<schema name="iris" checkSQLschema="false" sqlMaxLimit="5000">

这里的”iris“,是自定义的逻辑库的名字,也就是在mycat上查询的时候,显示出来的库名,可以跟数据库节点里”create database iris“这里的db名不一样,create的db也就是图二的dataNode的库名。

②schema.xml文件中,新增<dataNode … />内容

<!--  iris_dataNode -->

  <dataNode name="iris_dn1" dataHost="iris_Host" database="iris" />

name是自定义的名称,datahost也自定义,只要下面的内容中保持一致就可以。

database=“iris",指的就是”create database iris“这里的db,保持一致即可,有的情况是分库表、有多个节点,每个节点上的db可能名字分别是iris_db1、iris_db2……iris_dbn,那么这里就分别是database=iris_db1、iris_db2。

③schema.xml文件中,新增<dataHost>……</dataHost>内容

<!--  iris_dataHost -->

    <dataHost name="iris_Host" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">

        <heartbeat>select user()</heartbeat>

        <writeHost host="iris-m1" url=“1.1.1.56:3307" user="mycat" password="123456">

            </writeHost>

  </dataHost>

上面dataHost name="iris_Host"的iris_host对应步骤②中datahost的名称;

writeHost host="iris-m1”,自定义的主机名。

在节点db  iris中授权mycat可以访问节点服务器的时候,新建用户mcyat,密码为12345 。

④修改文件server.xml,如下:

逻辑库aaa,bbb,ccc是原来mycat中已存在的库,iris为新增,直接添加在其后即可。

同时增加了如下内容:

表示额外新增两个mycat用户,用于从mycat服务器访问iris库时权限分配,一个只读用户(readOnly),一个是可读写。

不添加这段,也可以用上面mycatadmin和之前授权的mycat用户访问数据库iris。

步骤二

重启mycat服务,或者relaod MyCAT配置文件

这四个地方确保正确修改后,就可以在管理端口下 reload mycat的配置文件,或者重启服务。

重新登录mycat,就可以看到新增的库了。

问题

MyCAT重启后,可以正常看到库iris与aaa,bbb等库一起,但是无法访问,报错1184.

mycat重启后,正常看到新增的库iris了,但是需要进行查询时,发现报错如下:” 1184- “

原因主要有

  • ①用户名/密码不对
  • ②授权不对
  • ③实际的库名和datanode不匹配

解决办法

  • 问题一:
  • 可尝试重新在节点db进行授权,确保密码正确,再试一次连接访问:
  • 问题二:
  • show grants查看实际授权情况,或者直接重新授权 all privileges确认访问状态;
  • 问题三:
  • 再一次详细检查各个修改的配置内容,

如、这里的database,是否与 在1.1.1.56服务器上数据库上创建的db名一样。

下图这里的database名称,是节点服务器上数据库里面实际的数据库名称:

其次,检查用户标签中的库名

下图中的库名是 mycat上逻辑库的名称,不是实际 create 的db的名字。

也就是下图中的schema

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL如何解决幻读问题

    MySQL如何解决幻读问题

    在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。所以需要解决幻读问题,本文就来介绍一下,感兴趣的可以了解一下
    2021-08-08
  • mysql索引原理与用法实例分析

    mysql索引原理与用法实例分析

    这篇文章主要介绍了mysql索引原理与用法,结合实例形式分析了mysql索引的基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • mysql自动定时备份数据库的最佳方法(windows服务器)

    mysql自动定时备份数据库的最佳方法(windows服务器)

    网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作,这里脚本之家小编为大家分享与整理了几个软件方便大家使用
    2016-11-11
  • MySQL 基于时间点的快速恢复方案

    MySQL 基于时间点的快速恢复方案

    这篇文章主要介绍了MySQL 基于时间点的快速恢复方案,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL中无过滤条件的count详解

    MySQL中无过滤条件的count详解

    这篇文章主要给大家介绍了关于MySQL中无过滤条件count的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-02-02
  • MySQL扩展VARCHAR长度遭遇问题汇总分析

    MySQL扩展VARCHAR长度遭遇问题汇总分析

    这篇文章主要为大家介绍了MySQL扩展VARCHAR长度遭遇问题汇总分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • SQL SERVER 2005 最小安装经验

    SQL SERVER 2005 最小安装经验

    很久以前有个疑问 安装SQL SERVER 2005后为什么会把VS2005给装上了,当时很郁闷,试想是不是在哪个环节把VS2005组件勾上的?
    2011-02-02
  • MySQL 如何查询当前最新事务ID

    MySQL 如何查询当前最新事务ID

    这篇文章主要介绍了MySQL 如何查询当前最新事务ID,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • mysql 行转列和列转行实例详解

    mysql 行转列和列转行实例详解

    这篇文章主要介绍了mysql 行转列和列转行实例详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • 如何将Excel文件导入MySQL数据库

    如何将Excel文件导入MySQL数据库

    这篇文章主要为大家详细介绍了Excel文件导入MySQL数据库的具体方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07

最新评论