• 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忽略表名大小写

  • 相关阅读:
    数据库设计优化(一)--基础
    数据库设计--范式原则
    迭代器 与 foreach 的区别
    DBeaver中如何调整SQL编辑器的字体大小
    腾讯课堂下载回放视频
    超级美味的大盘鸡做法
    关闭或开启Win10系统的自动更新
    geoserver发布地图瓦片影像数据
    使用GeoServer发布Shapfile数据
    GeoServer下载与安装(Windows版)
  • 原文地址:https://www.cnblogs.com/li3807/p/8461806.html
Copyright © 2020-2023  润新知