mycat搭建
搭建mycat
一、准备工作
1、确保jdk已安装成功,并且jdk版本选用1.7以上版本
2、准备一台新的主机mysql_mycat放到master的前面做代理
mycat ip 192.168.232.13
3、将三台机器互做本地解析
192.168.232.11 mysql_master
192.168.232.12 mysql_slave1
192.168.232.13 mysql_slave2
192.168.232.14 mysql_mycat
架构:
二、下载安装mycat
我们通过本地上传mycat包来安装mycat
[root@mysql_mycat ~]# tar xf Mycat-server-1.6.5-release-linux.tar.gz -C /usr/local/
cd 到/usr/local目录下,多了一个mycat文件夹
三、编辑配置文件
[root@mysql_mycat conf]# cd mycat/conf
[root@mysql_mycat conf]# vim server.xml
1.server.xml
<user name="mycat" defaultAccount="true">
<property name="password">Qf@12345!</property>
<property name="schemas">testdb</property>
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
<!--只读用户-->
<user name="mycat_read">
<property name="password">Qf@12345!</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>
2.编辑schema.xml
[root@mysql_mycat conf]# vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="testdb"/>
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="mysql_master" url="192.168.232.11:3306" user="mycat" password="Qf@12345!" >
<readHost host="mysql_slave1" url="192.168.232.12:3306" user="mycat" password="Qf@12345!" />
</writeHost>
</dataHost>
</mycat:schema>
注意:一定要严格遵守标签开始和结尾格式,否则会报错导致mycat启动后自动关闭
3.在mysql_mycat上创建库
mysql> create database testdb;
mysql> use testdb;
mysql> create table testdb.t1(id int);
mysql> insert into testdb.t1 values(1);
4.在master上给用户授权
[root@mysql_master ~]# mysql -uroot -p
mysql> grant all on testdb.* to mycat@'%' identified by 'Qf@12345!';
mysql> flush privileges;
5.在mycat机器上测试mycat用户登录master
[root@mysql_mycat ~]# mysql -umycat -p'Qf@12345!' -h mysql_master
登录上之后不进行任何操作,直接退出
6.在wrapper.conf中添加
[root@mycat mycat]# cd conf/
[root@mysql_mycat conf]# vim wrapper.conf
#在设置JVM哪里添加如下内容
wrapper.startup.timeout=300 //超时时间300秒
启动:
[root@mysql_mycat mycat]# bin/mycat start
Starting Mycat-server...
[root@mysql_mycat mycat]# jps
3814 Jps
3801 WrapperSimpleApp
再次启动jps查看,如果进程丢失一个,则是因为jdk版本问题,更换jdk
四、卸载重新安装jdk
1.卸载原有jdk版本
[root@mysql_mycat mycat]# java -version
查看jdk所有包
[root@mysql_mycat ~]# rpm -qa | grep openjdk
卸载:[root@mysql_mycat ~]# rpm -qa | grep openjdk |xargs rpm -e --nodeps
再查看:[root@mysql_mycat ~]# rpm -qa | grep openjdk
发现jdk已全部删除
2.安装新jdk1.8
(1)从本地上传jdk文件压缩包
(2)解压缩
[root@mysql_mycat ~]# tar xzf jdk-8u162-linux-x64.tar.gz -C /usr/local/
[root@mysql_mycat ~]# cd /usr/local/
[root@mysql_mycat local]# mv jdk1.8.0_162/ java
(3)设置环境变量
[root@mysql_mycat ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
然后使之生效:
[root@mysql_master local]# source /etc/profile
(4)查看java版本
[root@mysql_mycat ~]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
五、开启mycat
[root@mysql_mycat mycat]# bin/mycat start
[root@mysql_mycat mycat]# jps
7173 WrapperSimpleApp
7189 Jps
查看8066端口
[root@mysql_mycat ~]# netstat -lntp | grep java
(1)将master当做mycat的客户端
[root@mysql_master ~]# mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066
六、常见问题
1.在master上登录:mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066
2.若出现连接失败,大概率是mycat未启动
3.cd到/mycat/bin/mycat目录,start启动
4.查看jps,有两个进程,启动成功
5.多行注释:
<![CDATA[---内容---]]>
6.mycat配置的密码是Qf@12345!
7.插入数据操作在mycat端
七、show tables报错
如果在show table报错:
mysql> show tables;
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0
解决方式:
登录master服务将mycat的登录修改为%
mysql> update user set Host = '%' where User = 'mycat' and Host = 'localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
或者在授权用户mycat权限为*.*
mycat搭建的更多相关文章
- Mycat搭建负载均衡,读写分离的Mysql集群
Mycat搭建负载均衡,读写分离的Mysql集群 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.Mycat-server-1.6.7.4-te ...
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- mysql与mycat搭建实现集群与读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- docker应用-6(mysql+mycat 搭建数据库集群)
上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑 ...
- Linux 之Mycat搭建报错 java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException
搭建MyCat环境时出现 错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.Unknown ...
- mycat搭建环境
macos完全卸载mysql: https://blog.csdn.net/u012721519/article/details/55002626 踩过的坑: mycat1.6不支持单库分表; 最少要 ...
- MySQL分布式集群之MyCAT(转)
原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...
- 应用集成mycat,实现mycat的高可用与mysql的读写分离
前言 开心一刻 一个女人自朋友圈写道:我家老公昨天和别人家的老婆出去旅游,迄今未归,我则被别人家的老公折腾了一天,好累哦! 圈子下面,评论无数,老公在下面评论到:能不能好好说话,我只不过陪女儿去毕业旅 ...
- mysql主从服务搭建
一.安装mysql 检测当前centos是否安装了mysql:yum list installed | grep mysql yum list installed | grep mariadb ...
随机推荐
- Python自学笔记6-列表有哪些常用操作
列表是Python中最重要的数据类型,它使用的频率非常非常的高,最大程度的发挥Python的灵活性. 和字符串一样,列表的操作方法也有很多.如果说一头钻进去,可能会导致学习没有重点.在这篇文章当中,首 ...
- OpenJ_Bailian - 3424 Candies (差分约束)
题面 During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teache ...
- 058_末晨曦Vue技术_过渡 & 动画之过渡的类名
进入/离开 & 列表过渡 点击打开视频讲解更加详细 概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class ...
- 超详细 VS Code 配置C/C++教程
写在前面 如果您使用的电脑内存 \(\leq 4 \texttt{GB}\),建议您使用Dev-C++,否则会到时内存占用爆满,体验感不佳. 网上的很多教程都不够详细,这里我把每一步.每一个操作都详细 ...
- Dubbo-Adaptive实现原理
前言 前面我们已经分析Dubbo SPI相关的源码,看过的小伙伴相信已经知晓整个加载过程,我们也留下两个问题,今天我们先来处理下其中关于注解Adaptive的原理. 什么是@Adaptive 对应于A ...
- fastadmin后台分页设置显示方法
1.参照日志列表的分页(后台代码都有) 2.修改默认分页配置,在初始化里面加上: pageList: [5,10,'all'], 3.显示列表: [$where, $sort, $order, $ ...
- k8s更换网络插件:从flannel更换成calico
卸载flannel 查看已安装的flannel的信息 # 查看CNI插件,可以得知使用的是flannel # cat /etc/cni/net.d/10-flannel.conflist { &quo ...
- Node Exporter监控指标
访问http://localhost:9100/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据,如下所示: 每一个监控指标之前都会有一段类似于如下形式的信息: # ...
- [题解] Codeforces 1349 D Slime and Biscuits 概率,推式子,DP,解方程
题目 神题.很多东西都不知道是怎么凑出来的,随意设置几个变量,之间就产生了密切的关系.下次碰到这种题应该还是不会做罢. 令\(E_x\)为最后结束时所有的饼干都在第x个人手中的概率*时间的和.\(an ...
- postman7种断言的使用
导航:1.postman断言介绍2.状态码断言3.响应正文断言-包含4.响应正文断言-json字段5.响应头断言6.响应时间断言7.环境变量的断言 - - - - - - - - - 分割线 - - ...