MyCat安装,数据导入,以及安装过程中的各种参数配置

1 安装MyCat

安装目标:使用Mycat完成两台mysql分片即两台数据库做集群,通过访问mycat路由实现数据自动分片(根据id分配不同的mysql服务器)

1.1.环境:

操作系统:Centos7
数据库:mysql5.7
Jdk1.8

机器规划:

编号                    Ip           作用
机器1(bigdata1)   192.168.18.140  Mycat路由
机器1(bigdata1)   192.168.18.140  mysql
机器2(bigdata2)   192.168.18.141  Mysql

下载MyCat

http://dl.mycat.io/1.6.5/ 

这里写图片描述

1.2.解压和修改配置

将Mycat上传到:/home/bigdata/software

[root@bigdata1 software]# pwd
/home/bigdata/software
[root@bigdata1 software]# ls Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 
Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
[root@bigdata1 software]# tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /home/bigdata/installed/

解压后的mycat目录:
这里写图片描述
conf中的内容如下:
这里写图片描述
其中server.xml是Mycat服务器参数调整和用户授权的配置文件,schema.xml是逻辑库定义和表以及分片定义的配置文件,rule.xml是分片规则的配置文件,分片规则的具体参数信息单独存放为文件。
注意:Linux 下部署安装 MySQL,默认不忽略表名大小写,需要手动到/etc/my.cnf 下配置 lower_case_table_names=1 使 Linux 环境下 MySQL 忽略表名大小写,否则使用 MyCAT 的时候会提示找不到 表的错误!

1.4.配置mycat环境变量

export MYCAT_HOME=/home/bigdata/installed/mycat/
export PATH=$PATH:$MYCAT_HOME/bin
配置完成之后:执行source /etc/profile

1.4.配置说明

机器1、机器2安装并启动MySQL,安装后需要增加机器1(mycat)访问数据库的权限,方法:
在机器1、机器2中的连接本机mysql数据库,执行如下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIEDBY '123456'; 
FLUSH PRIVILEGES;

1.5.创建数据库

需要在机器1,机器2中分别创建db1数据库,执行如下命令:

CREATE DATABASE db1;
CREATE DATABASE TESTDB;

1.6.修改/home/bigdata/installed/mycat/conf/schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
                <!-- auto sharding by id (long) -->
                <table name="travelrecord" dataNode="dn1,dn2" rule="auto-sharding-long" />
        </schema>
        <dataNode name="dn1" dataHost="m1" database="db1" />
        <dataNode name="dn2" dataHost="m2" database="db1" />
        <dataHost name="m1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="m1" url="bigdata1:3306" user="root" password="123456">
                        <!-- can have multi read hosts -->
                        <!--<readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" />-->
                </writeHost>
                <!--<writeHost host="hostS1" url="localhost:3316" user="root" password="123456" />-->
        </dataHost>
        <dataHost name="m2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="m2" url="bigdata2:3306" user="root" password="123456"></writeHost>
        </dataHost>
</mycat:schema>

这里写图片描述

1.7.修改mycat/conf/autopartition-long.txt

如果有3台,4台等,需要在最下面再添加配置
# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1

1.8.启动mycat

[root@bigdata1 installed]# pwd
/home/bigdata/installed
[root@bigdata1 installed]# ls mycat/
bin catlet conf lib logs tmlogs version.txt
[root@bigdata1 installed]# ./mycat/bin/mycat
Usage: ./mycat/bin/mycat { console | start | stop | restart | status | dump }
[root@bigdata1 installed]# ./mycat/bin/mycat start
Starting Mycat-server…

使用mysql客户端工具(如sqlyog)连接mycat
这里写图片描述

注意:mycat默认端口8066,非3066,用户名密码在mycat/config/server.xml文件中查看:
这里写图片描述
这里写图片描述

1.9.参考博文

Mycat分表案例:

https://www.cnblogs.com/756623607-zhang/p/665601.html
https://blog.csdn.net/goslingfly/article/details/78573716
https://www.cnblogs.com/ruiati/p/7040416.html

1.10.数据导入

mysql -uroot -p123456 -h192.168.18.140 -P8066 –DTESTDB
source sql路径

Can’t get stat of ‘/home/bigdata/tb_pos_trade.sql’ (Errcode: 13 - Permission denied)
是因为导入的sql的时候,文件目录的权限的问题
解决办法是:

[root@bigdata1 home]# chmod -R 777 bigdata/

The MySQL server is running with the –secure-file-priv option so it cannot execute this statement
解决办法:
[root@bigdata1 home]# vim /etc/my.cnf
在里面加入:
secure-file-priv=”

ERROR 1366 (HY000): Incorrect integer value: ’ shop_id’ for column ‘shop_id’ at row 1
解决办法:

官方解释说:得知新版本mysql对空值插入有"bug",
要在安装mysql的时候去除默认勾选的enable strict SQL mode
那么如果我们安装好了mysql怎么办了,解决办法是更改mysql中的配置 my.ini
my.ini中查找sql-mode,

默认为sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",

将其修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可

load data infile “/home/bigdata/tb_pos_trade.sql” into table tb_pos_trade fields terminated by ‘,’;

1.11.自定义rule

打开/home/bigdata/installed/mycat/conf/rule.xml

<!--针对项目做自定义配置-->
<tableRule name="mod50-long">
    <rule>
         <columns>id</columns>
         <algorithm>mod50-long</algorithm>
    </rule>
</tableRule>

<function name="mod50-long" class="io.mycat.route.function.PartitionByMod">
      <!-- how many data nodes -->
      <property name="count">50</property>
</function>

1.12.修改MyCat内存

修改的位置:/home/bigdata/installed/mycat/conf/vim wrapper.conf
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值