版本

1、Mycat Server:1.6.7.4
2、MySql Server:5.7
3、Linux:CentOS 7.7

部署 MySql 5.7

1、部署-用Yum安装MySQL 5.7(CentOS 7.7)

2、MySQL 5.7 用户密码安全策略设置

下载 Mycat-server-1.6.7.4

$ cd /opt/mycat$ wget http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

安装 Mycat-server-1.6.7.4

下载的文件直接解压即可使用

$ tar zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

运行 Mycat-server-1.6.7.4

$ cd /opt/mycat/mycat/$ bin/mycat start   # 启动
$ bin/mycat stop    # 停止
$ bin/mycat console # 前台运行
$ bin/mycat restart # 重启服务
$ bin/mycat pause   # 暂停
$ bin/mycat status  # 查看启动状态

配置 Mycat-server-1.6.7.4

1、配置 mycat 默认用户 root 的用户密码:

修改配置文件 conf/server.xml 中的默认 root 用户密码(可以与 mysql root 用户密码不同)

<user name="root" defaultAccount="true"><property name="password">888888</property>
</user>

重启 mycat:

$ bin/mycat restart

如果密码不对,在连接 mycat 时,会报错:

$ mysql -uroot -p'888888' -P8066 -h127.0.0.1ERROR 1045 (HY000): Access denied for user 'root', because password is error

2、配置 mycat 对后端 mysql 的连接信息:

将配置文件 conf/schema.xml 中连接 mysql 的 root 用户密码修改为 mysql root 用户密码:

<dataHost name="localhost1" ...><writeHost host="hostM1" url="localhost:3306" user="root" password="123456789"></writeHost>
</dataHost>

重启 mycat:

$ bin/mycat restart

如果密码不对,在 mycat 日志文件 logs/mycat.log 中会有如下错误日志:

can’t connect to mysql server ,errmsg:Access denied for user ‘root’@‘localhost’ (using password: YES)

2021-01-01 13:49:42.931  WARN [$_NIOREACTOR-1-RW] (io.mycat.backend.mysql.nio.MySQLConnectionAuthenticator.handle(MySQLConnectionAuthenticator.java:91)) - can't connect to mysql server ,errmsg:Access denied for user 'root'@'localhost' (using password: YES) MySQLConnection@1107459254 [id=546, lastTime=1609480182929, user=root, schema=db3, old shema=db3, borrowed=false, fromSlaveDB=false, threadId=1209, charset=latin1, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]

创建 MySql 测试数据库表

1、在后端 mysql 中创建三个测试数据库 db1, db2, db3

创建在 mycat 配置文件 conf/schema.xml 中定义的三个默认数据库:

<mycat:schema xmlns:mycat="http://io.mycat/"><dataNode name="dn1" dataHost="localhost1" database="db1" /><dataNode name="dn2" dataHost="localhost1" database="db2" /><dataNode name="dn3" dataHost="localhost1" database="db3" />
</mycat:schema>
$ mysql -uroot -p'123456789' -P3306 -h127.0.0.1mysql> create database db1;
mysql> create database db2;
mysql> create database db3;

如果未创建上述 mysql 数据库,在 mycat 日志文件 logs/mycat.log 中会有如下错误日志:

can’t connect to mysql server ,errmsg:Unknown database ‘db3’

2021-01-01 14:22:49.639  WARN [$_NIOREACTOR-3-RW] (io.mycat.backend.mysql.nio.MySQLConnectionAuthenticator.handle(MySQLConnectionAuthenticator.java:91)) - can't connect to mysql server ,errmsg:Unknown database 'db3' MySQLConnection@189652758 [id=216, lastTime=1609482169637, user=root, schema=db3, old shema=db3, borrowed=false, fromSlaveDB=false, threadId=1431, charset=latin1, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]

2、在后端 mysql 中的三个测试数据库 db1, db2, db3 中分别创建两个测试表 travelrecord, address

创建在 mycat 配置文件 conf/schema.xml 中定义的两个默认数据表:

<mycat:schema xmlns:mycat="http://io.mycat/"><schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1"><!-- auto sharding by id (long) --><!-- splitTableNames 启用<table name 属性使用逗号分割配置多个表,即多个表使用这个配置--><table name="travelrecord,address" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" splitTableNames="true"/></schema>
</mycat:schema>
$ mysql -uroot -p'123456789' -P3306 -h127.0.0.1mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| db3                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)# 在数据库 db1 中创建数据表 travelrecord, address
mysql> use db1;
mysql> CREATE TABLE `travelrecord` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
mysql> CREATE TABLE `address` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;# 在数据库 db2 中创建数据表 travelrecord, address
mysql> use db2;
mysql> CREATE TABLE `travelrecord` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
mysql> CREATE TABLE `address` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;# 在数据库 db3 中创建数据表 travelrecord, address
mysql> use db3;
mysql> CREATE TABLE `travelrecord` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
mysql> CREATE TABLE `address` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;

如果未创建上述数据表,连接 mycat 并查询这些数据表时会报错:“Table ‘db2.address’ doesn’t exist”

$ mysql -uroot -p'123456789' -P8066 -h127.0.0.1mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.00 sec)mysql> use TESTDB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;
+------------------+
| Tables in TESTDB |
+------------------+
| address          |
| travelrecord     |
+------------------+
2 rows in set (0.00 sec)mysql> select * from address;
ERROR 1105 (HY000): Table 'db2.address' doesn't exist# 多次执行上述 select 语句,可能会报如下错误:
# ERROR 1105 (HY000): Table 'db1.address' doesn't exist
# ERROR 1105 (HY000): Table 'db2.address' doesn't exist
# ERROR 1105 (HY000): Table 'db3.address' doesn't exist

同时在 mycat 日志文件 logs/mycat.log 中会有如下错误日志:

err Table ‘db1.address’ doesn’t exist code:1146
err Table ‘db2.address’ doesn’t exist code:1146
err Table ‘db3.address’ doesn’t exist code:1146

2021-01-01 14:55:12.664  WARN [$_NIOREACTOR-2-RW] (io.mycat.backend.mysql.nio.handler.MultiNodeHandler.errorResponse(MultiNodeHandler.java:142)) - io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler@d0dece4error response from MySQLConnection@972530381 [id=222, lastTime=1609484112657, user=root, schema=db1, old shema=db1, borrowed=false, fromSlaveDB=false, threadId=1438, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] err Table 'db1.address' doesn't exist code:1146
2021-01-01 14:55:12.665  WARN [$_NIOREACTOR-2-RW] (io.mycat.backend.mysql.nio.handler.MultiNodeHandler.errorResponse(MultiNodeHandler.java:142)) - io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler@d0dece4error response from MySQLConnection@1848688729 [id=219, lastTime=1609484112657, user=root, schema=db2, old shema=db2, borrowed=false, fromSlaveDB=false, threadId=1435, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] err Table 'db2.address' doesn't exist code:1146
2021-01-01 14:55:12.665  WARN [$_NIOREACTOR-2-RW] (io.mycat.backend.mysql.nio.handler.MultiNodeHandler.errorResponse(MultiNodeHandler.java:142)) - io.mycat.backend.mysql.nio.handler.MultiNodeQueryHandler@d0dece4error response from MySQLConnection@990905854 [id=229, lastTime=1609484112657, user=root, schema=db3, old shema=db3, borrowed=false, fromSlaveDB=false, threadId=1444, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=localhost, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] err Table 'db3.address' doesn't exist code:1146
2021-01-01 14:55:12.665 ERROR [$_NIOREACTOR-2-RW] (io.mycat.net.FrontendConnection.writeErrMessage(FrontendConnection.java:210)) - ServerConnection [id=5, schema=TESTDB, host=127.0.0.1, user=root,txIsolation=3, autocommit=true, schema=TESTDB, executeSql=select * from address]Table 'db3.address' doesn't exist

Mycat 连接测试

测试 mycat 与测试 mysql 完全一致,mysql 怎么连接,mycat 就怎么连接

# 8066 是 Mycat 的默认连接端口
$ mysql -uroot -p'123456789' -P8066 -h127.0.0.1

参考

  • Mycat 官网 / Mycat Github 仓库
  • Mycat官方文档 - Mycat安装与使用
  • Mycat官方文档 - Mycat配置入门
  • 部署-用Yum安装MySQL 5.7(CentOS 7.7)
  • MySQL 5.7 用户密码安全策略设置

部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7)相关推荐

  1. Windows2008R2部署SharePoint Server 2013(2)---安装篇

    Windows2008R2部署SharePoint Server 2013(2)---安装篇 5.安装Share Point 2013 1) 在SP服务器上,运行安装程序   2) 输入序列号 3) ...

  2. Windows Server 2012/2012 R2:安装和配置 SMTP 服务器

    Windows Server 2012/2012 R2:安装和配置 SMTP 服务器 安装 SMTP 服务器 以下是安装 SMTP 服务器功能的步骤: 打开"服务器管理器":单击键 ...

  3. ## **#安装数据库SQL Server 2008R2 时,提示安装或配置microsoft.net framework 3.5 sp1**

    #安装数据库SQL Server 2008R2 时,提示安装或配置microsoft.net framework 3.5 sp1 安装数据库时,总是提示你安装或配置Microsoft.netframe ...

  4. Squid代理服务器的安装与配置 CentOS

     Squid代理服务器的安装与配置 CentOS 转自:http://www.cnblogs.com/mchina/p/3812190.html 一.简介 代理服务器英文全称是Proxy Serv ...

  5. 云服务器(uCloud)部署java web项目(二) 安装,配置apache服务器

    自己组建了一个网站,想要发布到互联网上.然后我就找到了这个链接 https://www.codecasts.com/series/deploy-a-website-from-scratch(是一个从零 ...

  6. 安装sql server 2000时又出现:安装程序配置服务器失败。参考服务器错误日志和 C:/WINNT/sqlstp.log 了解更多信息。

    安装程序配置服务器失败.参考服务器错误日志和 C:/WINNT/sqlstp.log 了解更多信息. 查看日志文件;发现是以下问题: driver={sql server};server=ZHL;UI ...

  7. linux6.5 安装yum,配置Centos 6.5的yum源

    问题:redhat 6.4 默认自带的 yum 源需要注册,才能更新. 解决方案:删除默认的yum源,手动配置Centos 6.5的yum源. 我这里的系统是RedHat 6.4的所以在 http:/ ...

  8. SQL Server 2012 Express 和 SSMS 安装与配置

    SQL Server 2012 Express 微软官网下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=29062 选择好符 ...

  9. 05-02 docker 安装与配置-CentOS

    安装依赖: yum install -y yum-utils device-mapper-persistent-data lvm2 iptables-services 添加源 yum-config-m ...

  10. 网络安全笔记——第六天:安装和配置 CentOS 7

    第六天笔记 认识CentOS操作系统 CentOS自我简介 安装CentOS系统的虚拟机 一.准备工作 二.安装 第一步 第二步 第三步 第四步 第五步 第五步 第六步 第七步 第八步 三.配置系统 ...

最新文章

  1. fastdfs 测试客户端_分布式文件服务 FastDFS (第一篇)
  2. Community Server专题一:概述Community Server
  3. 什么是Github的元数据metadata以及如何备份github上的数据
  4. 设计模式Adapter模式的五分钟
  5. jquery --- 使用when方法等待2个异步事件结束后执行某一个函数.
  6. Python数模笔记-StatsModels 统计回归(1)简介
  7. solaris linux nfs,solaris 10 nfs服务配置
  8. android手机状态解释,比方android.os.Build.VERSION.SDK
  9. Auto layout 的使用
  10. word域高级应用 if 域 域邮件合并的值的更改 日期的更改
  11. 浅谈VMD---变分模态分解
  12. 为什么要使用英英词典?
  13. PDF如何加水印? PDF加水印的方法
  14. tensorflow pb模型获得权重wts
  15. android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息
  16. 猿创征文|《Java》关键字大全-小结
  17. windows 命令提示符 修改/prompt
  18. GCT备考-潜心复习
  19. C语言 - 跳舞配对问题
  20. Lammps之结冰构建

热门文章

  1. 爬取微博热点评论用户ID--简易版本
  2. 【2023最新】Git安装配置教程
  3. AliOS Developer 网址
  4. jar包+注册码 破解Jetbrains IDEA 2017.2.1版本
  5. 如何学习投资 推荐几本教材
  6. MFC连接SQL数据库操作
  7. Infragistsitcs NetAdvantage WebCombo 控件
  8. 解读新零售:什么叫做人货场的重构
  9. Linux基础面试篇
  10. STM8L051F3单片机竟然没有TIM1定时器,却有TIM2,3,4!!!害我调了一天没调出来