共计 2984 个字符,预计需要花费 8 分钟才能阅读完成。
Mycat 是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,所以并不是完全意义的分布式数据库系统。
安装 Java 环境,配置全局环境变量
MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境 (JRE), 由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。
安装 JDK, 本文安装版本为 jdk-8u101-linux-x64.tar.gz
可以从官网 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 可以下载最新版本。
注意:下载与操作系统对应的版本,以免启动 Mycat 错误
配置 JAVA 全局环境变量
1 2 3 4 5 | export JAVA_HOME=/usr/local/jdk1.8.0_101 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar |
安装 MySQL 并进行相关设置
Mycat 用来作为 MySQL 中间件,需要安装 MySQL 数据库,并设置用户和 database 节点。
安装 MySQL
在 Ubuntu 上安装 MySQL 非常简单,只需要按照下面命令执行即可,安装过程中间可能需要设置 root 密码等操作。
1 2 3 | sudo apt-get install mysql-server apt-get isntall mysql-client |
安装完成之后,查看是否安装成功
1 | ps -ef|grep mysql |
解决提示 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
1:停止 mysq 服务,/etc/init.d/mysql stop
2:用 mysqld_safe –user=mysql –skip-grant-tables –skip-networking 启动 mysql
3:直接输入 mysql 命令进入 mysql
4:执行下面的 sql 命令,修改密码
注意:这一步有一个坑,在 MySQL5.7 之前版本中,密码列为 password,在 5.7 时,password 改为 authentication_string
5.7 之前:update mysql.user set password=password(‘123456′) where user=’root’
5.7 开始:update mysql.user set authentication_string=password(‘123456’) where user=’root’
5:执行配置文件刷新命令
flush privileges;
6:重启 MySQL /etc/init.d/mysqld restart
7:使用 root 用户登录 mysql -u root -p
添加操作系统用户,非 MySQL 用户
1 2 | useradd test #新增 test 用户 passwd test #设置新密码 |
新增 Database, 分别为 db1,db2,db3
这 3 个数据库即为 MyCat 新增的 3 个数据节点,为数据分片做准备。
1 2 3 | create database db1; create database db2; create database db3; |
安装 MyCat 并进行相关设置
可以从 MyCat 的 github 上下载最新的 Release 版本,本文使用版本为 1.5-RELEASE
下载 / 安装 Mycat
1 | wget https://github.com/MyCATApache/Mycat-download/blob/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20160811220036-linux.tar.gz |
本文下载后,解压到指定目录即可,将文件解压到 /usr/local
启动 Mycat
进入解压目录 /usr/loacal/mycat/bin
1 | ./mycat start |
注意,这里启动如果未成功,请查看日志文件,下面说下我在启动过程中碰到的错误。
1: jdk 版本与系统版本不兼容
2: mycat 配置中的内存设置超出机器内存 (我在本地虚拟机安装)。
错误内容:The specified size exceeds the maximum representable size
1 2 3 4 5 6 7 8 | # 最大内存不足 Xmx4G,设置相关启动的配置文件 vi /usr/local/mycat/conf/wrapper.conf wrapper.java.additional.10=-Xmx4G wrapper.java.additional.11=-Xms1G 改为: wrapper.java.additional.10=-Xmx512M wrapper.java.additional.11=-Xms64M |
配置 MyCat
在这里只是简单介绍下配置,保证 MyCat 能正确连上 MySQl,具体详细配置,请参考官方文档。
1 | cd /usr/local/mycat/conf |
在此目录中,存放着 MyCat 的全部配置信息,这里先看下 server.xml
再打开 schema.xml 查看配置信息,需要修改 dataHost 节点中的 mysql 连接地址和用户信息。
使用 MyCat 连接 MySQL
1 | mysql -utest -ptest -h127.0.0.1 -P8066 -DTESTDB |
其中 8066 是 mycat 的监听端口,类似于 mysql 的 3306 端口,其中 -u,-p,- h 分别是用户名,密码和主机,- D 是连接的逻辑库。
红色部分表明连接的是 mycat。
创建 Travelrecord 表
1 | create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int); |
插入数据
1 2 3 4 5 | mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10); mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10); mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10); |
查看数据是否分布到对应节点上
首先退出 MyCat 连接,直接进入 MySQL。
我们现在查询刚刚插入数据的分布情况
更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134330.htm