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.6。7.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&serverTimezone=Asia/Shanghai&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&serverTimezone=Asia/Shanghai&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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律