zoukankan      html  css  js  c++  java
  • Ubuntu16.04.1 安装MyCat

    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全局环境变量

    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密码等操作。

    sudo apt-get install mysql-server
    
    apt-get isntall mysql-client
    

     安装完成之后,查看是否安装成功

    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用户

    useradd test  #新增test用户
    passwd test  #设置新密码
    

    新增Database,分别为db1,db2,db3

    这3个数据库即为MyCat新增的3个数据节点,为数据分片做准备。

    create database db1;
    create database db2;
    create database db3;
    

    安装MyCat并进行相关设置

     可以从MyCat的github上下载最新的Release版本,本文使用版本为1.5-RELEASE

    下载/安装Mycat

    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

    ./mycat start
    

    注意,这里启动如果未成功,请查看日志文件,下面说下我在启动过程中碰到的错误。

    1: jdk版本与系统版本不兼容

    2: mycat配置中的内存设置超出机器内存(我在本地虚拟机安装)。

        错误内容:The specified size exceeds the maximum representable size

    #最大内存不足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,具体详细配置,请参考官方文档。

    cd /usr/local/mycat/conf

    在此目录中,存放着MyCat的全部配置信息,这里先看下server.xml

     再打开schema.xml查看配置信息,需要修改 dataHost节点中的mysql连接地址和用户信息。

    使用MyCat连接MySQL

    mysql -utest -ptest -h127.0.0.1 -P8066 -DTESTDB
    

     其中8066是mycat的监听端口,类似于mysql的3306端口,其中-u,-p,-h分别是用户名,密码和主机,-D是连接的逻辑库。

    红色部分表明连接的是mycat。

    创建Travelrecord表

    create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int);

    插入数据

    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。

    我们现在查询刚刚插入数据的分布情况

    本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Python 解LeetCode:Intersection of Two Arrays
    flask中使用xlsxwriter导出excel文件
    python的xlwt模块的常用方法
    线程池理解
    内存屏障理解
    中断上半部,下半部理解
    DPDK l2fwd源码学习
    如何用perf工具
    如何迅速分析出系统CPU的瓶颈在哪里?
    怎么理解Linux软中断?
  • 原文地址:https://www.cnblogs.com/piscesLoveCc/p/5764688.html
Copyright © 2011-2022 走看看