版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/79619246
1.在Linux中新建一个docker文件夹,如下图所示:
![](https://ask.qcloudimg.com/http-save/5427142/pneqd8k4pe.png?imageView2/2/w/1620)
文件里面分别有Dokcerfile文件、mycat安装文件、jdk安装包。
2.利用Dockerfile文件生成docker镜像,文件内容如下:
FROM ubuntu ADD jdk-8u161-linux-x64.tar.gz /usr/local/src ADD mycat /usr/local/src/mycat ENV JAVA_HOME=/usr/local/src/jdk1.8.0_161 ENV PATH=$JAVA_HOME/bin:$PATH ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EXPOSE 8666 9666 3366 RUN chmod -R 777 /usr/local/src/mycat/bin CMD ["./usr/local/src/mycat/bin/mycat", "console"]
3.mycat安装包中主要看conf文件下面的server.xml和schema.xml两个配置文件
server.xml是配置mycat用户的,schema.xml是配置数据库的
server.xml文件如下所示:
![](https://ask.qcloudimg.com/http-save/5427142/qghc407tei.png?imageView2/2/w/1620)
root表示用户名、220316表示登陆密码、mycat是在shema.xml中配置的名称。
![](https://ask.qcloudimg.com/http-save/5427142/ifdbnrhobq.png?imageView2/2/w/1620)
mycat为应用的名称也就是我们在server.xml提到的名称、database为数据库名称、url为数据库链接地址。
具体参数介绍请参考下面这篇文章:http://mp.weixin.qq.com/s/d4HkkgxBno72nlTWXYOAEQ
(这边需要注意的是,mycat版本我这边用的是最新的也就是Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz,旧版本的时候出了一些问题。)
在安装mycat之前,我这边已经安装了MySQL主从数据库了。详细的安装过程可以参照下面这篇博客:http://blog.csdn.net/linzhiqiang0316/article/details/79249271
4.创建mycat镜像,命令如下:docker build -t mycat:1.0 .
![](https://ask.qcloudimg.com/http-save/5427142/yzw74shmsv.png?imageView2/2/w/1620)
5.运行上面创建的镜像并启动容器,命令如下:docker run --name mycat -p 8666:8066 -p 9666:9066 mycat:1.0
![](https://ask.qcloudimg.com/http-save/5427142/vlzh7cbtng.png?imageView2/2/w/1620)
6.进入容器中,查看运行日志,命令如下:docker exec -i -t e727cef15f23 /bin/bash
![](https://ask.qcloudimg.com/http-save/5427142/56m3khgjdq.png?imageView2/2/w/1620)
如果需要在docker容器中编辑文本的话,需要安装vim。(不安装会出现bash: vim: command not found错误)。安装命令如下:
apt-get update
apt-get install vim
7.mycat的相关操作(必须在bin目录下面才可以执行下面这些命令):
启动MyCat:
./mycat start
查看启动状态:
./mycat status
停止:
./mycat stop
重启:
./mycat restart
8.通过Datagrip数据库管理工具来链接mycat
![](https://ask.qcloudimg.com/http-save/5427142/cv95zefc00.png?imageView2/2/w/1620)
安装过程看起来很简单,但是还是走了很多的弯路,就像下面这几种情况:
1.一个是mycat安装版本不对,导致DataGrip一直链接不上mycat。
2.另外一个是配置文件没搞清楚,导致配置出错。
3.还有就是一直出现Error querying database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (30 > -1)错误,原因是max_allowed_packet = 40M值太小了。
转载:
https://cloud.tencent.com/developer/article/1433512