Mycat 安装与启动

环境准备

  • 安装JDK1.8(必须JDK1.7及更高版本)
  • 安装MySQL

   

服务安装与说明

  • 下载 MyCAT 编译好的安装包,下载地址为 http://dl.mycat.io/1.6-RELEASE/ 选择 1.6-release 版本,执行如下命令:

    # wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

  • 解压缩下载包

    # tar -xvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /opt

  • 创建 Mycat 用户设置目录权限

    # useradd Mycat

    # chown -R Mycat.Mycat /opt/mycat

  • 修改 Mycat 用户密码

    # passwd Mycat

  • 目录说明:
    • bin:存放了mycat 的程序,也提供了nowrap的shell脚本命令
    • conf:存放了相关配置文件
      • server.xml是Mycat服务器参数调整和用户授权的配置文件
      • schema.xml是逻辑库定义和表以及分片定义的配置文件
      • rule.xml是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启 Mycat或者通过9066 端口reload.
    • lib:主要存放mycat依赖的一些jar文件
    • logs:日志存放在logs/mycat.log 中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要,可以调整输出级别为debug,debug级别下,会输出更多的信息,方便排查问题

   

服务启动

首先需要在Linux系统的环境变量中配置 MYCAT_HOME,操作方式如下:

在系统环境变量文件中增加 MYCAT_HOME=/opt/mycat

# vi /etc/profile

执行命令,使环境变量生效。

# source /etc/profile

如果是在多台Linux系统中组建的 MyCAT集群,那需要在MyCAT Server所在的服务器上配置对其他ip和主机名的映射,配置方式如下:

# vi /etc/hosts

例如:我有4 台机器,配置如下:

IP 主机名:

192.168.100.2 sam_server_1

192.168.100.3 sam_server_2

192.168.100.4 sam_server_3

192.168.100.5 sam_server_4

编辑完后,保存文件。

经过以上两个步骤的配置,就可以到/usr/local/Mycat/bin 目录下执行:

# ./mycat start

   

Q&A

Q:使用MyCAT的时候会提示找不到表的错误!

A:由于部署安装 MySQL,默认不忽略表名大小写,需要手动到 /etc/my.cnf 下配置 lower_case_table_names=1 使Linux环境下MySQL忽略表名大小写

   

Q:启动 mycat 出现错误,异常信息 Error Caused by: io.mycat.config.util.ConfigException:SelfCheck###  schema testdb refered byuser test is not exist!

A:Server.xml 不要写小写的 testdb,要写大写的TESTDB;或者是由于用户 test 的逻辑库 testdb 不存在。

   

Q:启动 mycat 出现错误,日志信息如下:

jvm 1 | 2018-02-11 23:58:26,213 [WARN ][$_NIOREACTOR-0-RW] can't connect to mysql server ,errmsg:Access denied for user 'drsoft'@'%' to database 'TEMPDB' MySQLConnection [id=230, lastTime=1518364706200, user=drsoft, schema=TEMPDB, old shema=TEMPDB, borrowed=false, fromSlaveDB=true, threadId=3594, charset=latin1, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.2.235, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.mysql.nio.MySQLConnectionAuthenticator:MySQLConnectionAuthenticator.java:91)

A:确认用户登陆信息没有问题,那需要确认连接的数据库配置了表名大小写,需要手动到 /etc/my.cnf 下配置 lower_case_table_names=1 使Linux环境下MySQL忽略表名大小写

posted @ 2018-02-23 14:15  立3807  阅读(653)  评论(0编辑  收藏  举报