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时间戳与日期格式的相互转换

    在MySQL数据库中,时间戳和日期格式是常用的数据类型,在MySQL中,我们可以使用函数还相互转换时间戳和日期格式,下面我将详细的给大家介绍如何进行转换,并提供相应的代码示例,感兴趣的小伙伴跟着小编一起来看看吧
    2024-01-01
  • 解决出现secure_file_priv null的问题

    解决出现secure_file_priv null的问题

    这篇文章主要介绍了解决出现secure_file_priv null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 浅析MysQL B-Tree 索引

    浅析MysQL B-Tree 索引

    这篇文章主要介绍了MysQL B-Tree 索引的相关资料,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-11-11
  • 为什么MySQL查询速度会慢

    为什么MySQL查询速度会慢

    这篇文章主要介绍了为什么MySQL查询速度会慢的相关资料,需要的朋友可以参考下
    2022-12-12
  • 利用SQL注入漏洞登录后台的实现方法

    利用SQL注入漏洞登录后台的实现方法

    工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意。读这篇文章,我假设读者有过写SQL语句的经历,或者能看得懂SQL语句
    2012-01-01
  • MySQL 8.0.23 主要更新一览(新特征解读)

    MySQL 8.0.23 主要更新一览(新特征解读)

    这篇文章主要介绍了MySQL 8.0.23 主要更新一览(新特征解读),需要的朋友可以参考下
    2021-01-01
  • MySql使用存储过程进行单表数据迁移的实现

    MySql使用存储过程进行单表数据迁移的实现

    近期在进行业务解耦,对冗余在一起切又属于不同业务的代码进行分离,同时也将数据库进行分离存储,那么这时候就涉及到多个表的数据要进行迁移,本文就来介绍一下MySql使用存储过程进行单表数据迁移,感兴趣的可以了解一下
    2023-11-11
  • 总结几种MySQL中常见的排名问题

    总结几种MySQL中常见的排名问题

    这篇文章主要总结了几种MySQL中常见的排名问题,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-09-09
  • Mac下mysql 5.7.13 安装配置方法图文教程

    Mac下mysql 5.7.13 安装配置方法图文教程

    这篇文章主要介绍了Mac下mysql 5.7.13 安装配置方法图文教程,内容很详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • MySQL修改时区的方法图文详解

    MySQL修改时区的方法图文详解

    这篇文章主要给大家介绍了关于MySQL修改时区的相关资料,时区是MySQL中非常重要的概念,正确设置时区可以确保应用程序工作正常并避免时间错误,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-09-09

最新评论