北风留影 发表于 2018-9-28 12:06:01

MyCAT+MySQL搭建

  Mycat安装部署
  1下载jdk: http://www.oracle.com/technetwork/java/javase/archive-139210.html,建议用7就好
  jdk-7u55-linux-i586.tar.gz
  解压包:tar –zxvf jdk-7u55-linux-i586.tar.gz
  包文件:http://down.51cto.com/data/2281695
  存放在/usr/local:mv jdk1.7.0_55 /usr/local/jdk
  添加环境变量:
  Vim /etc/profile
  exportJAVA_HOME=/usr/local/jdk
  exportJRE_HOME=${JAVA_HOME}/jre
  exportCLASSPATH=.:${JAVA_HOME}/lib:${jre_home}/lib
  exportPATH=${JAVA_HOME}/bin:$PATH
  执行生效: source /etc/profile
  vim /etc/environment environment
  export_JAVA_OPTIONS="-Xms64m -Xmx64m -Xmn32m"
  执行生效:source /etc/
  检查/usr/bin/java是否已经存在链接
  #ll/usr/bin/java若存在删除,rm –rf/usr/bin/java
  添加新链接:ln –s /usr/local/jdk/bin/java /usr/bin/
  测试是否OK:
  # java -version
  Picked up _JAVA_OPTIONS: -Xms64m -Xmx64m-Xmn32m
  java version "1.7.0_55"
  Java(TM) SE Runtime Environment (build1.7.0_55-b13)
  Java HotSpot(TM) Client VM (build24.55-b03, mixed mode)
  若启动报错话:

  yum install glibc.i686 -y
  ##############JDK安装完成。
  2、安装MyCat
  添加mycat用户,并设置密码
  #useradd mycat
  #passwd mycat
  下载mycat建议使用1.5版本
  Mycat-server-1.5.1-RELEASE-20160405120037-linux.tar.gz
  解压到/usr/local目录下
  #tar –zxvf Mycat-server-1.5.1-RELEASE-20160405120037-linux.tar.gz–C /usr/local/
  定义所属的用户和主
  Chown –R mycat.mycat /usr/local/mycat
  添加mycat用户,并设置密码
  #useradd mycat
  #passwd mycat
  修改配置文件:
  vim/usr/local/mycat/conf/wrapper.conf

  wrapper.java.command=/usr/local/jdk/bin/java

   1064 -com.alibaba.druid.sql.parser.ParserException: syntax error, expect RPAREN, actualERROR DURATION
  Encountered an error running main:java.lang.ExceptionInInitializerError

  创建链接:
  #ln –s /usr/local/mycat/bin/mycat /usr/bin/
  启动mycat
  #mycat start
  支持的参数:
  mycat --help
  Usage: /usr/bin/mycat { console | start |stop | restart | status | dump }
  启动过程可能有问题,主要查看日志:/usr/local/mycat/logs/ wrapper.log,可以开启debug功能,或者在启动时候执行#mycatconsole查看执行过程
  添加本地解析:
  # # hostname
  data3
  #vim /etc/hosts#写自己本机IP和HOSTNAME
  再次启动基本没问题:mycat简单搭建完毕:
  #mycat start
  # ps -ef |grep mycat
  查看进程状态
  #ps faux |grep mycat
  端口开启(同时打开防火墙)
  #netstat –ant |grep 8066
  测试:
  #mysql -utest -ptest –h192.168.28.71 -P8066 –DTESTDB
  其中8066是mycat的监听端口,其中-u,-p,-h分别是用户名,密码和主机,-D是连接的逻辑库
  ####登录的用户名和密码是mycat默认提供的,只能读模式,配置文件在vim /usr/local/mycat/conf/server.xml

  启动mycat报错信息,主要是由于没修改这个配置文件信息:
  1、Error: Could notcreate the Java Virtual Machine.
  INFO| jvm 4    | 2016/05/18 01:33:03 |Error: A fatal exception has occurred. Program will exit
  大概原因,就是java堆内存不足以运行JVM,需要增加内存
  1、      Linux修改环境变量 vim/etc/environment
  增加此行:export_JAVA_OPTIONS="-Xms64m -Xmx64m -Xmn32m"
  其中的64m表示使用64M的内存。-Xms是堆的最小大小,-Xmx是堆的最大值,-Xmn是堆中的新生代最小值。Xmn中的值不能超过总的堆内存大小
  知识普及:
  Xmx:设置JVM最大可用内存
  Xms:设置JVM初始化内存
  Xmn:设置年年轻代内存大小,整个JVM内存大小=年轻代大小+年老代大小+持久化大小,持久代一般固定大小为64M,所以增的年轻代后,将会减小年老代大小,此值对系统性能影响较大,官方推选配置为整个堆的3/8
  Xss:设置每个线程的堆栈大小
  Source /etc/environment
  1、             添加JDK的环境变量:vim /etc/profile 添加完source /etc/profile 执行生效
  exoprt JAVA_HOME=/usr/local/mycat/jdk
  export JRE_HOME=${JAVA_HOME}/jre
  exportCLASSPATH=.:${JAVA_HOME}/lib:${jre_home}/lib
  export PATH=${JAVA_HOME}/bin:$PATH
  3、执行过程还报错:
  jvm 1   | WrapperSimpleApp: Encountered an error running main:java.lang.OutOfMemoryError: Direct buffer memory
  jvm 1   | java.lang.OutOfMemoryError: Direct buffer memory
  修改mycat的配置文件:
  Vim /usr/local/mycat/conf/ wrapper.conf
  启动前,一般需要修改JVM配置参数,默认下行的内容为2G和4G,可根据本机配置情况修改为512M或者其他值

  # conf/server.xml   #用来定义系统相关变量
  XML的格式就是各类标签
  注释标签:
  定义服务配置范围标签:
  
  
  #system标签:
  这个标签用来框定系统配置范围,用来保存几乎所有mycat需要的系统配置信息(其在代码内直接的映射类为SystemConfig )
  #property:用来定义服务的具体参数
  #user:用来设定一个用户的权限相关
  ######################自定义个前端的应用连接用户


  #maxCon:一个读写实例链接迟的最大连接数
  #minCon:一个读写实例链接迟的最小连接数,初始化连接池的大小
  #balance:负载均衡类型:0代表不开启读写分离机制,只使用writeHost;1代表readOnly与writeHost分担请求模式, 2 代表随机分配读请求和1类似; 3 代表只由readHost来承担读请求
  #writeType: 负载均衡类型:0 代表发到第一个writeHost,挂了后切到还生存的第二个writeHost,重新启动后以切换后的为准,也就是不漂回;1 代表写操作随机发送到writeHost,这样不安全;
  dbType:后端数据库类型
  #switch Type:切换类型:-1代表不切换,1代表自动切换,2代表基于主从同步状态决定是否切换
  #slave Threshold#SLAV读的安全边界,如果seconds_behind_master大于这个值,这台slave会被临时剔除,以免被读
  #heartbeat:包含一个语句,用语句执行成功与否来判定数据库的可用性
  # conf/rule.xml    #用来定义分片规则
  定义了一个 mod-long 的分片规则,对 id 列进行分片,使用 mod-long 算法;(默认)
  #####注意:
  ML中定义的标签有顺序,如果不按照顺序进行配置,会报错。
  比如 schema.xml 中的顺序为
  ·       1.定义 schema
  ·       2.定义 dataNode
  ·       3.定义 dataHost
  如果不按顺序,会无法启动mycat,并且 mycat.log 中会报错
  *****************到此结束,重新启动mycat,根据之前定义好的逻辑库库名和表名在中间层添加。使用在配置文件中定义的用户名,此用户名主要提供给前端应用使用。添加定义好的表名,若添加不存在的表报错: optable not in schema----AA
  # mysql -h192.168.28.71 -P8066 -uaaa –paaa -Dcctest

页: [1]
查看完整版本: MyCAT+MySQL搭建