安装
1.java的安装
- 下载jdk.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
复制代码
- 解压并拷贝
tar zxvf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_151/ /usr/local/java/
复制代码
- 配置环境变量
vi /etc/profile #在文件最后加入以下几行
export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt,jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:%JRE_HOME/bin
source /etc/profile #重新加载配置
复制代码
- 验证
java -version
复制代码
2.mycat的安装
- 下载源代码,解压即可。
3.试运行
- 进入mycat的解压目录
- ./bin/mycat console
目录结果解释
目录结构如下所示:
mycat ├── bin 程序目录,存放了各种脚本命令,比如常用的mycat。 ├── catlet 人工智能分片目录 ├── conf 各类配置文件的目录 ├── lib 存放mycat依赖的jar文件 ├── logs 存在mycat所产生的日志文件。 └── version.txt
一些常用命令
进入bin目录下
./mycat start #启动mycat, 后台运行
./mycat stop #停止mycat
./mycat console #启动mycat, 前台运行
./mycat restart #重启mycat
./mycat pause #暂停mycat
./mycat status #查看mycat的状态
mysql -uroot -p123456 -P8066 -h 127.0.0.1 #连接数据接口的命令
复制代码
配置文件的介绍
mycat主要的配置文件分为以下几个:
server.xml 系统相关的配置文件
schema.xml 逻辑库,逻辑表,dataHost,dataNode配置文件
rules.xml 分片的规则定义文件
数据库读写分离的实例
分为以下三步:
一、数据库配置主从赋值
首先配置两台机器,一台作为master,一台作为slave
测试环境下我使用的是docker来配置:
master: 127.0.0.1:3306
slave: 127.0.0.1:3309
配置master
1、设置mysql用户,为其创建一个用来数据同步的用户。
mysql>create user repl;
mysql> grant replication slave on *.* to 'repl'@'192.168.1.10' identified by 'repl';
mysql> flush privileges;
复制代码
2、配置my.cnf文件
# 基本的配置
[mysqld]
server-id=1 #数据库服务的唯一标识
log-bin=mysql-bin # bin文件前缀
#其他配置文件
# expire_logs_days= 10 日志有效期
# binlog-do-db= test 需要记录二进制日志的数据库
# binlog-ignore-db= mysql 不需要记录二进制日志的数据库
# replicate-ignore-db=mysql 不需要同步的数据库
复制代码
3、重启mysqld
4、进入mysql查看master的状态, 获得pos
mysql> show master status;
复制代码
配置slave
1、配置my.cnf
[mysqld]
log-bin=mysql-bin
server-id=3
slave-net-timeout=60
复制代码
2、重启Mysqld
3、进入mysql命令行,开始连接master
stop slave;
change master to master_host='127.0.0.1',master_user='root',master_password='sangfor',master_log_file='mysql-bin.000001', master_log_pos=154;
start slave;
show slave status;
复制代码
4、验证成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
MYSQL[Got fatal error 1236]的原因和解决办法
参考:yq.aliyun.com/articles/27…
二、mycat配置读写分离
主要配置schema.xml
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave statusheartbeat>
<writeHost host="hostM1" url="localhost:3306" user="root" password="123456">
<readHost host="hostS1" url="localhost:3309" user="root" password="123456"
weight="1" />
writeHost>
dataHost>
或者
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave statusheartbeat>
<writeHost host="hostM1" url="localhost:3306" user="root" password="123456">
writeHost>
<writeHost host="hostS1" url="localhost:3307" user="root" password="123456">
writeHost>
dataHost>
复制代码
以上两种取模第一种当写挂了读不可用,第二种可以继续使用,
启动则Ok了。
三、迁移数据库
mysql迁移数据库命令:
mysqldump -uroot -p'密码' --master-data=2 --single-transaction -R --triggers -A > /backup/all.sql
说明: --master-data=2代表备份时刻记录master的Binlog位置和Position
--single-transaction意思是获取一致性快照
-R意思是备份存储过程和函数
--triggres的意思是备份触发器
-A代表备份所有的库
在数据库中新建数据库:
CREATE DATABASE OSS_BUSINESS_data DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
导入数据:
source xxx.sql