部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7)

2024-01-25 07:58

本文主要是介绍部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版本

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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/642599

相关文章

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1