MyCat02-搭建

配置mycat服务器

安装JDK

yum -y install java-1.8.0-openjdk
或者
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$PATH:JAVA_HOME/bin

安装mycat

tar -zxvf Mycat-server-1.67.3-xxx-linux.tar.gz -C /usr/local/
useradd mycat
chown -R mycat:mycat /usr/local/mycat
export PATH=$PATH:/usr/local/mycat/bin

mycat  --help
Usage: ./bin/mycat { console | start | stop | restart | status | dump }

修改配置文件 server.xml

配置mycat的用户及权限

vim conf/server.xml

<user name="root" defaultAccount="true">             //用户名
     <property name="password">123456</property>     //密码
     <property name="schemas">DB01</property>        //连接上mycat服务后,可以访问的逻辑库。多个库名,使用逗号分隔
</user>

<user name="user">
     <property name="password">123456</property>
     <property name="schemas">DB01</property>
     <property name="readOnly">true</property>       //定义只读权限
</user>

修改配置文件 schema.xml

vim conf/schema.xml

# 配置逻辑库(schema)、逻辑表(table)、数据节点(dataNode)、分片规则(rule)
<schema name="DB01" checkSQLschema="true" sqlMaxLimit="100">
    <table name="TB_ORDER" travelrecord" dataNode="dn1,dn2" rule="auto-sharding-long" />
</schema>

# 指定节点主机
<dataNode name="dn1" dataHost="dhost1" database="db1" />
<dataNode name="dn2" dataHost="dhost2" database="db2" />

# 配置节点主机
<dataHost name="dhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    # 访问数据库时,mycat服务连接数据库服务器时使用的用户名和密码
    <writeHost host="dhost1" url="jdbc:mysql://192.168.4.54:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="admin" password="123456"></writeHost>
</dataHost>

<dataHost name="dhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    # 访问数据库时,mycat服务连接数据库服务器时使用的用户名和密码
    <writeHost host="dhost1" url="jdbc:mysql://192.168.4.55:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="admin" password="123456"></writeHost>
</dataHost>

启动服务并查看端口

mycat start
netstat -antup | grep :8066
tail -f /usr/local/mycat/logs/wrapper.log

登录mycat服务器

mysql -h 192.168.4.54 -p 8066 -u admin -p     # 密码123456
show databases;    # 查看到的是逻辑库
use DB01;
show tables;
ls /usr/local/mycat/logs/
mycat.log  mycat.pid  wrapper.log        //wrapper.log为错误日志
ldconfig  -v        //更新加载的模块

254客户端访问56

命令: mysql -hmycat主机的IP -P端口号 -u用户 -p密码
mysql -h192.168.4.56 -P8066 -utest -ptest

show databases;
use TESTDB;

客户端测试:

create table employee(
    id int not null primary key,
    name varchar(100),
    sharding_id int not null);  
创建的表格必须符合规则和算法,算法和规则在/usr/local/mysql/conf/schema.xml中,例如employee必须有sharding_id字段,且此字段的值在/usr/local/mysql/conf/partition-hash-int.txt中

[root@mysql56 mycat]# cat /usr/local/mycat/conf/partition-hash-int.txt
10000=0
10010=1
insert into employee(id,name,sharding_id) values(1,"bob",10000);
insert into employee(id,name,sharding_id) values(1,"lucy",10010);

54的表中由bob,55的表中有lucy

posted @   立勋  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示