centos8 mycat 2.0安装及使用

安装前准备

服务器已安装Jdk8
对应数据库安装,本测试使用的Mycat2操作Mysql,所以也完成了Mysql安装

jdk安装

1、下载

我用夸克网盘分享了「jdk-8u341-linux-x64.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/34e1f58045f8 提取码:LNvG

2、解压到 usr/local
sudo tar -zxvf jdk-8u341-linux-x64.tar.gz -C /usr/local
3、切换到etc/profile.d/文件下
cd /etc/profile.d/
4、 在profile.d下创建一个jdk.sh文件
sudo vi /etc/profile.d/jdk.sh
5、 jdk.sh文件内容
export JAVA_HOME=/usr/local/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH   
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
6、配置生效
source /etc/profile
7、查询版本
java -version

mycat安装

可以通过绑定的资源下载
也可以通过官网下载mycat2

如果在windows下载 需传入centos8

D:\BaiduNetdiskDownload\mycat2.zip 需要传入的文件目录
root@192.168.245.132:/Admin/
root 虚拟机账号名
192.168.245.132 虚拟机iip地址
/Admin/ 存放地址

scp D:\BaiduNetdiskDownload\mycat2.zip root@192.168.245.132:/root/

解压 然后给/mycat/bin文件下的所有文件赋值最高级权限

在这里插入图片描述
或者通过在/mycat/bin命令行中

chmod +x *

修改 Mycat 服务 /mycat/conf/server.json

主要添加了serverVersion配置 serverVersion前面是MySQL的版本后面是Mycat的版本

查询mysql版本

登录mysql后查询
select version();

server.json文件内容

{
  "loadBalance":{
    "defaultLoadBalance":"BalanceRandom",
    "loadBalances":[]
  },
  "mode":"local",
  "properties":{},
  "server":{
    "bufferPool":{

    },
    "idleTimer":{
      "initialDelay":3,
      "period":60000,
      "timeUnit":"SECONDS"
    },
    "ip":"0.0.0.0",
    "mycatId":1,
    "port":8066,
    "serverVersion":"8.0.40-mycat-2.0",
    "reactorNumber":8,
    "tempDirectory":null,
    "timeWorkerPool":{
      "corePoolSize":0,
      "keepAliveTime":1,
      "maxPendingLimit":65535,
      "maxPoolSize":2,
      "taskTimeout":5,
      "timeUnit":"MINUTES"
    },
    "workerPool":{
      "corePoolSize":1,
      "keepAliveTime":1,
      "maxPendingLimit":65535,
      "maxPoolSize":1024,
      "taskTimeout":5,
      "timeUnit":"MINUTES"
    }
  }
}

原型库连接

只用设置一次。
在主节点创建 Mycat 使用的数据库 mycat

CREATE DATABASE IF NOT EXISTS mycat;

这个库称为 Mycat 的原型库(prototype),Mycat 在启动时,会自动在原型库下创建其运行时所需的数据表。

CREATE DATABASE IF NOT EXISTS `mycat`;
USE `mycat`;
DROP TABLE IF EXISTS `analyze_table`;
CREATE TABLE `analyze_table` (
  `table_rows` bigint(20) NOT NULL,
  `name` varchar(64) NOT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `config`;
CREATE TABLE `config` (
  `key` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `value` longtext,
  `version` bigint(20) DEFAULT NULL,
  `secondKey` longtext,
  `deleted` tinyint(1) DEFAULT '0',
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `replica_log`;
CREATE TABLE `replica_log` (
  `name` varchar(22) DEFAULT NULL,
  `dsNames` text,
  `time` datetime DEFAULT NULL,
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `spm_baseline`;
CREATE TABLE `spm_baseline` (
  `id` bigint(22) NOT NULL AUTO_INCREMENT,
  `fix_plan_id` bigint(22) DEFAULT NULL,
  `constraint` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `extra_constraint` longtext,
  PRIMARY KEY (`id`),
  UNIQUE KEY `constraint_index` (`constraint`(22)),
  KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `spm_plan`;
CREATE TABLE `spm_plan` (
  `id` bigint(22) NOT NULL AUTO_INCREMENT,
  `sql` longtext,
  `rel` longtext,
  `baseline_id` bigint(22) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `sql_log`;
CREATE TABLE `sql_log` (
  `instanceId` bigint(20) DEFAULT NULL,
  `user` varchar(64) DEFAULT NULL,
  `connectionId` bigint(20) DEFAULT NULL,
  `ip` varchar(22) DEFAULT NULL,
  `port` bigint(20) DEFAULT NULL,
  `traceId` varchar(22) NOT NULL,
  `hash` varchar(22) DEFAULT NULL,
  `sqlType` varchar(22) DEFAULT NULL,
  `sql` longtext,
  `transactionId` varchar(22) DEFAULT NULL,
  `sqlTime` bigint(20) DEFAULT NULL,
  `responseTime` datetime DEFAULT NULL,
  `affectRow` int(11) DEFAULT NULL,
  `result` tinyint(1) DEFAULT NULL,
  `externalMessage` tinytext,
  PRIMARY KEY (`traceId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE IF EXISTS `variable`;
CREATE TABLE `variable` (
	`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
	`value` varchar(22) DEFAULT NULL,
	PRIMARY KEY (`name`)
) ENGINE = InnoDB CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
DROP TABLE IF EXISTS `xa_log`;
CREATE TABLE `xa_log` (
	`xid` bigint(20) NOT NULL,
	PRIMARY KEY (`xid`)
) ENGINE = InnoDB CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

修改数据源 mycat/conf/datasources/prototypeDs.datasource.json

只修改password、url、user 三部分

password:原型库的密码
user :原型库的用户
url:请求url  localhost:3306/mycat 可更改为mysql所在的具体的Ip地址和具体的库

"password":"123456",
"url":"jdbc:mysql://localhost:3306/mycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"root",
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123456",
"type":"JDBC",
"url":"jdbc:mysql://localhost:3306/mycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"root",
"weight":0
}

记住或者自己重新设置mycat登录的账号和密码

在这里插入图片描述

验证数据库访问情况

Mycat作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况

mysql -u root -p -h 192.168.140.100 -P 3306;

如远程访问报错,请建对应用户

防火墙拦截:检查数据库服务器所在主机的防火墙设置,看是否拦截了 MyCat默认的 8066
端口(如果使用的是默认端口配置)。如果防火墙阻止了客户端与服务器之间的连接通信,就会出现连接超时情况。可以按照相应操作系统的规则去开放
8066端口,比如在 Linux 系统中使用firewalld防火墙时,通过命令sudo firewall-cmd
–zone=public --add-port=8066/tcp --permanent添加允许 8066端口的 TCP 协议通信规则,然后执行sudo firewall-cmd --reload使规则生效;若使用iptables防火墙,可使用iptables
-A INPUT -p tcp --dport 3306 -j ACCEPT等相关命令来允许访问 8066端口,并做好规则保存工作。

grant all privileges on *.* to 'root'@'缺少的host' identified by '密码';

打开mycat 在/mycat/bin 中通过./mycat start

在这里插入图片描述

验证Mycat是否正常运行

在mycat/bin 中通过

./mycat start  运行
./mycat status 查看状态

登录Mycat

9066 运维人员管理、维护 mycat的端口
8066 开发人员管理、维护 mycat的端口

mysql -u root -p -P 9066 -h  远程mysql的ip
mysql -u root -p -P 8066 -h  远程mysql的ip

通过创建一个库

created database mycat_db

查看/mycat/conf/schemas下是否有同名库 有则成功
在这里插入图片描述

报错

Mycat-server is not running.

查看日志
1、通过命令行

mycat console

2.myCat 根目录下查看
在这里插入图片描述

错误信息

Running Mycat-server...wrapper  | ERROR: Could not write pid file /opt/mycat/logs/mycat.pid: No such file or directory

解决:mycat 根目录下创建logs 重启mycat
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值