CentOS7.5下安装Mycat连接MySQL8.0

Posted on 2018-11-08 11:07 许爱琪 阅读(645) 评论(2) 编辑 收藏

MyCat详细介绍,请参考https://www.biaodianfu.com/mycat.html

9066管理端口,请参考https://www.cnblogs.com/parryyang/p/5606071.html

1.创建mycat用户

1
2
useradd mycat
passwd mycat

2.下载安装包、解压并赋权

1
2
3
wget http://dl.mycat.io/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
tar -xzvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local
chown -R mycat:mycat /usr/local/mycat

3.配置环境变量

1
2
3
4
5
6
7
8
9
10
11
vi /etc/profile
增加
## jdk env
JAVA_HOME=/usr/java/jdk1.8.0_192
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
## mycat env
export MYCAT_HOME=/usr/local/mycat
export PATH=$PATH:$MYCAT_HOME/bin
source /etc/profile

4.配置server.xml
vi /usr/local/mycat/conf/server.xml

+ View Code

5.配置schema.xml
vi /usr/local/mycat/conf/schema.xml

+ View Code

6.启动Mycat

1
mycat start

7.查看mycat启动日志
[root@mycat-server2 data]# mycat console
Running Mycat-server...
Mycat-server is already running.

8.连接MyCat
连接管理端口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
[root@mycat-server2 data]# mysql -h192.168.0.252 -P9066 -utest -ptest
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.6.29-mycat-1.6.6.1-release-20181031195535 MyCat Server (monitor)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 查看所有的可用命令:
mysql> show @@help;
+--------------------------------------------------------------+--------------------------------------------+
| STATEMENT | DESCRIPTION |
+--------------------------------------------------------------+--------------------------------------------+
| show @@time.current | Report current timestamp |
| show @@time.startup | Report startup timestamp |
| show @@version | Report Mycat Server version |
| show @@server | Report server status |
| show @@threadpool | Report threadPool status |
| show @@database | Report databases |
| show @@datanode | Report dataNodes |
| show @@datanode where schema = ? | Report dataNodes |
| show @@datasource | Report dataSources |
| show @@datasource where dataNode = ? | Report dataSources |
| show @@datasource.synstatus | Report datasource data synchronous |
| show @@datasource.syndetail where name=? | Report datasource data synchronous detail |
| show @@datasource.cluster | Report datasource galary cluster variables |
| show @@processor | Report processor status |
| show @@command | Report commands status |
| show @@connection | Report connection status |
| show @@cache | Report system cache usage |
| show @@backend | Report backend connection status |  ##显示后端物理库连接信息,包括当前连接数,端口等信息
| show @@session | Report front session details |
| show @@connection.sql | Report connection sql |      ## 显示当前前端客户端连接情况
| show @@sql.execute | Report execute status |
| show @@sql.detail where id = ? | Report execute detail status |
| show @@sql | Report SQL list |
| show @@sql.high | Report Hight Frequency SQL |
| show @@sql.slow | Report slow SQL |
| show @@sql.resultset | Report BIG RESULTSET SQL |
| show @@sql.sum | Report User RW Stat |
| show @@sql.sum.user | Report User RW Stat |
| show @@sql.sum.table | Report Table RW Stat |
| show @@parser | Report parser status |
| show @@router | Report router status |
| show @@heartbeat | Report heartbeat status |
| show @@heartbeat.detail where name=? | Report heartbeat current detail |
| show @@slow where schema = ? | Report schema slow sql |
| show @@slow where datanode = ? | Report datanode slow sql |
| show @@sysparam | Report system param |
| show @@syslog limit=? | Report system mycat.log |
| show @@white | show mycat white host |
| show @@white.set=?,? | set mycat white host,[ip,user] |
| show @@directmemory=1 or 2 | show mycat direct memory usage |
| show @@check_global -SCHEMA= ? -TABLE=? -retry=? -interval=? | check mycat global table consistency |
switch @@datasource name:index | Switch dataSource |
| kill @@connection id1,id2,... | Kill the specified connections |
| stop @@heartbeat name:time | Pause dataNode heartbeat |
| reload @@config | Reload basic config from file |
| reload @@config_all | Reload all config from file |
| reload @@route | Reload route config from file |
| reload @@user | Reload user config from file |
| reload @@sqlslow= | Set Slow SQL Time(ms) |
| reload @@user_stat | Reset show @@sql @@sql.sum @@sql.slow |
| rollback @@config | Rollback all config from memory |
| rollback @@route | Rollback route config from memory |
| rollback @@user | Rollback user config from memory |
| reload @@sqlstat=open | Open real-time sql stat analyzer |
| reload @@sqlstat=close | Close real-time sql stat analyzer |
| offline | Change MyCat status to OFF |
| online | Change MyCat status to ON |
| clear @@slow where schema = ? | Clear slow sql by schema |
| clear @@slow where datanode = ? | Clear slow sql by datanode |
+--------------------------------------------------------------+--------------------------------------------+
59 rows in set (0.01 sec)
# 查看所有的逻辑数据库:
mysql> show @@database;
+----------+
| DATABASE |
+----------+
| TESTDB |
+----------+
1 row in set (0.00 sec)
# 查看所有的数据节点:
mysql> show @@datanode;
Empty set (0.00 sec)
mysql> show @@datasource;
+----------+----------+-------+---------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+----------+-------+---------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | mysql_b1 | mysql | 192.168.0.242 | 3306 | W | 0 | 10 | 1000 | 6215 | 0 | 2 |
| dn1 | mysql_b2 | mysql | 192.168.0.240 | 3306 | R | 0 | 9 | 1000 | 6299 | 84 | 0 |
+----------+----------+-------+---------------+------+------+--------+------+------+---------+-----------+------------+
2 rows in set (0.00 sec)
mysql> quit
Bye

连接数据操作端口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@mycat-server2 data]# mysql -h192.168.0.252 -P8066 -utest -ptest
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.6.29-mycat-1.6.6.1-release-20181031195535 MyCat Server (OpenCloudDB)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 可以看见的都是逻辑数据库:
mysql> 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 -A
Database changed
# 查看所有的数据表:
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| member |
| t01 |
| t02 |
| t03 |
+----------------+
4 rows in set (0.03 sec)

参数说明:

-h 后面是主机,即当前 mycat 安装的主机地址,本地可用 127.0.0.1 远程需要远程 ip;
-u Mycat server.xml 中配置的逻辑库用户;
-p Mycat server.xml 中配置的逻辑库密码;
-P 后面是端口 默认 9066,注意 P 是大写;
-d Mycat server.xml 中配置的逻辑库。

9.MyCat操作命令:

启动MyCat: mycat start;
停止MyCat: mycat stop;
前台运行: mycat console;
重启服务: mycat restart;
暂停: mycat pause;
查看启动状态: mycat status;

10.修改log4j的配置

为了让信息启动时更好定位,需要将conf/log4j2.xml的文件修改为debug级别。

附:其他问题
MySQL8.0的客户端连不上Mycat?
解决方案:使用mysql5的客户端可以正常访问,待详细分析

分类: mysql
好文要顶 关注我 收藏该文  

许爱琪
关注 - 13
粉丝 - 4

+加关注

0
0

« 上一篇: Linux下安装jdk8步骤详述 
» 下一篇: MySQL Router实现MySQL的读写分离

Feedback

#1楼 [楼主]    回复 引用

2018-11-08 14:07 by 许爱琪

ERROR 1054 (HY000): Unknown column '_mycat_op_time' in 'field list'

解决方案:这个是由参数 useGlobleTableCheck 控制的全局表一致性检测,原理通过在全局表增加_MYCAT_OP_TIME字段来进行一致性检测,类型为bigint,create语句通过mycat执行会自动加上这个字段,其他情况请自己手工添加。 
所以创建表不要在 datanode 各节点去创建,而是通过 mycat 去创建。

支持(0) 反对(0)

#2楼 [楼主]    回复 引用

2018-11-08 14:53 by 许爱琪

配置为 systemd 服务

## sudo vim /usr/lib/systemd/system/mycat.service
## 注意: ExecStart/ExecStop 取值两侧不要用引号
[Unit]
Description=MyCAT Service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/mycat/bin/mycat start
ExecStop=/usr/local/mycat/bin/mycat stop

[Install]
WantedBy=multi-user.target
设置开机自动启动、并立即启动:

sudo systemctl enable mycat # 设置为开机自动启动
sudo systemctl start mycat # 立即启动

# sudo systemctl stop mycat # 立即停止
# sudo systemctl disable mycat # 取消开机自动启动

CentOS7.5 搭建MyCat1.6.6

1、环境及版本

操作系统:   CentOS 7.5

MySQL:5.7.23

jdk:1.8.0_191

MyCat:1.6.6.1

1
2
3
cat /etc/centos-release
mysql -V
java -version

  

2、安装包准备

下载网站:http://dl.mycat.io/1.6.6/

【2】上传至linux服务器:

1
2
3
mkdir /home/rhr/soft/mycat
cd /home/rhr/soft/mycat
rz

  

3、开始安装

【1】解压

1
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

【2】安装tree(可选,使目录结构更好看)

1
yum -y install tree

查看tree:

4、创建用户并修改配置文件

【1】为了更好的进入mycat,设置MYCAT_HOME的变量

1
vim /etc/profile

 添加绿色部分:

export JAVA_HOME=/home/rhr/soft/jdk/jdk1.8.0_191
export MYCAT_HOME=/home/rhr/soft/mycat/mycat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/mysql/bin:$MYCAT_HOME/bin:$PATH

使得变量生效
1
source /etc/profile

检查

【2】配置mycat文件

(1)修改server.xml

1
2
3
cd home/rhr/soft/mycat/mycat/conf
cp server.xml server_bak.xml
vim  server.xml

修改前:

修改后:

(2)修改schema.xml

1)  修改schema 标签

修改前:

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"><!-- auto sharding by id (long) --><table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /><!-- global table is auto cloned to all defined data nodes ,so can joinwith any table whose sharding node is in the same data node --><table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /><table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /><!-- random sharding using mod sharind rule --><table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /><!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global"needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> --><table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /><table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile"><childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id"><childTable name="order_items" joinKey="order_id" parentKey="id" /></childTable><childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"  parentKey="id" /></table><!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --></schema>

修改后:

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"><!-- auto sharding by id (long) --><table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /><!-- global table is auto cloned to all defined data nodes ,so can joinwith any table whose sharding node is in the same data node --><table name="company" primaryKey="company_id" type="global" dataNode="dn1,dn2,dn3" /><table name="goods" primaryKey="goods_id" type="global" dataNode="dn1,dn2" /><!-- random sharding using mod sharind rule --><table name="hotnews" primaryKey="hotnews_id" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /><!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global"needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> --><table name="employee" primaryKey="employee_id" dataNode="dn1,dn2" rule="sharding-by-intfile" /><table name="customer" primaryKey="customer_id" dataNode="dn1,dn2" rule="sharding-by-murmur"><childTable name="orders" primaryKey="order_id" joinKey="customer_id" parentKey="customer_id"><childTable name="order_items" joinKey="order_id" parentKey="order_id" /></childTable><childTable name="customer_addr" primaryKey="customer_addr_id" joinKey="customer_id"  parentKey="customer_id" /></table><!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --></schema>

2)  修改schema 标签

修改前

        <!-- can have multi write hosts --><writeHost host="hostM1" url="localhost:3306" user="root" password="123"><!-- can have multi read hosts --><readHost host="hostS2" url="localhost:3306" user="root" password="123" /></writeHost><writeHost host="hostS1" url="localhost:3306" user="root" password="123" /><!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->

修改后:

    <!-- can have multi write hosts --><writeHost host="hostM1" url="localhost:3306" user="root"  password="YYBrhr_2018"><!-- can have multi read hosts --><!-- <readHost host="hostS2" url="localhost:3306" user="root" password="123" /> --></writeHost><!-- <writeHost host="hostS1" url="localhost:3306" user="root" password="123" /> --><!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --></dataHost>

(3)修改role.xml

修改前:

<tableRule name="sharding-by-intfile"><rule><columns>sharding_id</columns><algorithm>hash-int</algorithm></rule></tableRule><tableRule name="auto-sharding-long"><rule><columns>id</columns><algorithm>rang-long</algorithm></rule></tableRule><tableRule name="mod-long"><rule><columns>id</columns><algorithm>mod-long</algorithm></rule></tableRule><tableRule name="sharding-by-murmur"><rule><columns>id</columns><algorithm>murmur</algorithm></rule></tableRule>

修改后:

    <tableRule name="sharding-by-intfile"><rule><columns>employee_id</columns><algorithm>hash-int</algorithm></rule></tableRule><tableRule name="auto-sharding-long"><rule><columns>id</columns><algorithm>rang-long</algorithm></rule></tableRule><tableRule name="mod-long"><rule><columns>hotnews_id</columns><algorithm>mod-long</algorithm></rule></tableRule><tableRule name="sharding-by-murmur"><rule><columns>customer_id</columns><algorithm>murmur</algorithm></rule></tableRule>

5、启动mycat并测试

【1】启动mycat

mycat start
mycat status

【2】测试

mysql -u root -p -P8066 -h 127.0.0.1

这里输入的密码,是在/home/rhr/soft/mycat/mycat/conf/server.xml里面看到的密码

这样就说明安装成功了,安装或者启动mycat之前

分类: 数据库
标签: CentOS, mycat, MySQL
好文要顶 关注我 收藏该文  

落泪秋
关注 - 2
粉丝 - 3

+加关注

转载于:https://www.cnblogs.com/xuanbjut/p/11590175.html

CentOS7.5下安装Mycat连接MySQL8.0相关推荐

  1. Mycat连接Mysql8.0及以上配置及问题(已解决)

    Mycat连接Mysql8.0及以上问题(已解决) 编辑server.xml 配置文件 vim conf/server.xml <!-- 修改此位置 --><user name=&q ...

  2. Win10环境下安装压缩包版本MySQL-8.0.13

    准备工作 系统环境:Windows 10 1803版本: 压缩包:MySQL-8.0.13 Windows zip包下载: 安装过程 1. 加载安装包到你的安装目录 将下载的MySQL压缩包解压并移到 ...

  3. mysql8 win10_window10下安装多个MySQL8.0

    最近看了看MySQL,MySQL到8.0后有很大的性能提升,为了做一些数据库的配置,看了下MySQL8.0在win10上安装多个mysql,在这里分享给大家 准备 下载MySQL8.0MySQL8.0 ...

  4. Linux(Centos7)下安装Redis(redis-5.0.8)

    下载Redis安装包 官网:https://redis.io/ 如果不想下载最新版本,可以点击该处选择以往版本 Ps:我下载的为5.0.8 使用xFtp来将文件传输到Linux下的/opt 使用xSh ...

  5. Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested by server;报错的问题解决办法

    Windown系统下 遇到 Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested by ser ...

  6. centos 下安装mysql,linux(Centos7)下安装mysql8.0.18的教程图解

    1 获取安装资源包 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 提取码: rsif 2 在/usr/local目录下新建目录mysql8 3 将下载的资源包(my ...

  7. Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)

    Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 文章目录 Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1.上传或者下载mysql安装包 2.检查是否 ...

  8. Linux中Mycat远程连接Mysql8.0提示密码错误

    Linux中Mycat远程连接Mysql8.0提示密码错误 问题: 当在linux中使用mycat远程连接时候会提示密码错误,具体如下: 解决 防火墙 最开始以为是防火墙未关闭 通过查看防火墙状态发现 ...

  9. mysql8.0创建dbcp_dbcp_c3p0连接mysql8.0.13

    背景 学习数据库的使用,上次没有记录,现在都回忆不起来了,所以这次重新学的时候顺便记录下. 配置环境 win10 jdk11 idea mysql8.0.13 DBCP连接使用 用配置文件目前我连接不 ...

最新文章

  1. C/C++求职宝典21个重点笔记(常考笔试面试点)
  2. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
  3. Target Unreachable, identifier 'userInfoUpdateBean' resolved to null 错误问题描述以及解决
  4. Shuffling Machine (20)
  5. 软件工程第一次测试——学生管理系统设计
  6. linux nfs用的用户权限,权限 – Linux特定用户安装NFS
  7. ai生成图片是什么技术_什么是生成型AI?
  8. 网络安全技术之虚拟专用网络
  9. 计算机上键盘无法输入法,电脑中输入法设置窗口提示检测到不兼容的键盘驱动的解决方法...
  10. 【DIY】用驱蚊器改装wifi中继器,wifi信号增强器
  11. 2017深度学习装机清单 (附京东链接)
  12. 华硕bios更改固态硬盘启动_华硕bios怎么设置固态硬盘为第一启动项
  13. 联想笔记本快捷键控制千千静听 2009年10月2日19:09:44
  14. 中国大学MOOC-陈越、何钦铭-数据结构-2016秋期末考试
  15. linux中项目常用的start.sh和stop.sh
  16. 建设工程项目全寿命周期管理是指_工程项目全寿命周期管理.ppt
  17. 一个测试岗面了 30 多人,100多个人投简历,真的太卷了,不能再真实了....
  18. 串口传输速率为9600bps意味着每分钟最多可传送多少个ASCII码字符
  19. php深入浅出图片上传
  20. 足球人生:青春不过几届世界杯

热门文章

  1. 物联网工程专业的迷茫与抉择
  2. python的arp欺骗_python arp欺骗
  3. 籍贯怎样填写_填表格籍贯怎么填写
  4. Nmap网络扫描实验
  5. 爬取《斗破苍穹》小说全文
  6. PSP升级速度令然惊喜!(update:2007.10.13)
  7. docker篇2--macOS 安装docker
  8. android 实现微信的开门效果
  9. IP-SAN客户端配置及使用
  10. IP解析:含义、作用、格式、分类