Linux下Mycat安装配置和使用
mysql安装
下载mysql【百度云】
tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz 解压
把mysql文件夹移动到 /usr/local/ 下mv mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql
创建mysql用户和组
groupadd mysql
adduser -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql //修改mysql目录所属mysql用户
安装 /usr/local/mysql/scripts/mysql_install_db
修改配置文件my.cnf,必须要修改才能使用mycat
最后一行添加
lower_case_table_names = 1
设置mysql服务
cp -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
启动mysql service mysqld start
把mysql命令加入环境变量
修改/etc/profile文件,最后行添加export PATH=$PATH:/usr/local/mysql/bin
然后执行 source /etc/profile 使配置立即生效
登陆mysql如果提示错误 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
执行命令 ln /var/lib/mysql/mysql.sock /tmp/mysql.sock 后再登陆
root用户初始密码为空,修改密码使用mysqladmin命令
mysqladmin -uroot -p password
登陆客户端 mysql -uroot -p
创建测试数据库
CREATE database db1;
CREATE database db2;
CREATE database db3;
至此mysql已经安装完成了
安装java
linux下安装java
mycat安装
下载mycat【百度云】
解压 tar -zxvf Mycat-server-1.6-RELEASE-20161012170031-linux.tar.gz
把mycat文件夹移动到 /usr/local/ 下mv Mycat-server-1.6-RELEASE-20161012170031-linux /usr/local/mycat
新建用户和组
groupadd mycat
adduser -r -g mycat mycat
chown -R mycat.mycat /usr/local/mycat //修改mycat目录所属mycat用户
修改配置文件 /usr/local/mycat/conf/schema.xml
这里配置mysql的地址、用户名和密码
<writeHost host="hostM1" url="localhost:3306" user="root" password="root">
<readHost host="hostS1" url="localhost:3306" user="root" password="root" />
</writeHost>
server.xml
这里配置mycat的用户名密码
<user name="root">
<property name="password">digdeep</property>
<property name="schemas">TESTDB</property>
</user>
启动mycat /usr/local/mycat/bin/mycat start
连接mycat mysql -uroot -pdigdeep -h127.0.0.1 -P8066 -DTESTDB
注意这里 -h 后面必须是ip,使用localhost会出错
创建测试数据
use TESTDB;
create table company(id int not null primary key,name varchar(50),addr varchar(255));
insert into company values(1,"facebook","usa");
结果:查看mysql上的数据库db1,db2,db3上都创建了表company
mysql主从服务器配置
修改主mysql配置文件my.cnf
[mysqld]
log_bin = mysql-bin #记录操作日志
binlog_ignore_db = mysql #不同步mysql系统数据库
server_id = 1
启动主mysql,在主mysql创建一个用户让从mysql连接,执行sql
主mysql:node1
从mysql:node2
修改从mysql配置文件my.cnf
log_bin = mysql-bin #记录操作日志
replicate_ignore_db = mysql #不同步mysql系统数据库
slave_skip_errors = all
server_id = 2
主mysql执行sql show master status;\G
从mysql连接主mysql
根据第2步配创建的user,password 和 第4步获取的file,position 连接主mysql
change master to master_host='node1',master_user='user',master_password='password',master_log_file='mysql-bin.000004',master_log_pos=120;
//如果是mysql5.6即以上可以不需要master_log_file和master_log_pos,mysql会自动识别
change master to master_host='node1',master_user='user',master_password='password';
开启从mysql,从mysql中执行 start slave;
查看从mysql状态,从mysql执行 show slave status\G;
红色下划线部分为yes则开启成功
测试成果
首先在主从mysql上都新建数据库testdb
主mysql:use testdb;create table user(id int not null primary key,name varchar(50));
从mysql上也会产生user表,主从mysql配置成功!
mycat读写分离配置
注意事项
远程 mysql 必须允许 mycat主机 远程连接,修改mysql.user表中的用户数据,执行sql
update mysql.user set host = '%' where user = 'root'
schema.xml配置
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<writeHost host="hostM1" url="node1:3306" user="root" password="root">
<readHost host="hostS1" url="node2:3306" user="root" password="root" />
</writeHost>
</dataHost>
dbDriver 属性
指定连接后端数据库使用的 Driver,目前可选的值有 native 和 JDBC。使用 native 的话,因为这个值执行的是二进制的 mysql 协议,所以可以使用 mysql 和 maridb。其他类型的数据库则需要使用 JDBC 驱动来支持。
从 1.6 版本开始支持 postgresql 的 native 原始协议。
如果使用 JDBC 的话需要将符合 JDBC 4 标准的驱动 JAR 包放到 MYCAT\lib 目录下,并检查驱动 JAR 包中包括如下目录结构的文件:META-INF\services\java.sql.Driver。在这个文件内写上具体的 Driver 类名,例如:com.mysql.jdbc.Driver。
balance 属性
负载均衡类型,目前的取值有 3 种:
balance=”0”, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
balance=”1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
balance=”2”,所有读操作都随机的在 writeHost、readhost 上分发。
balance=”3”,所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压
力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。
writeType 属性
负载均衡类型,目前的取值有 3 种:
writeType=”0”, 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个
writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
writeType=”1”,所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
switchType 属性
-1 表示不自动切换
1 默认值,自动切换
2 基于 MySQL 主从同步的状态决定是否切换
心跳语句为 show slave status
根据主从延时切换技术
Mycat1.4开始支持 MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下: MyCAT心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性: switchType=”2” 与slaveThreshold=”100”,此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制,Mycat心跳机制通过检测 show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master 主从复制时延, 当Seconds_Behind_Master>slaveThreshold 时,读写分离筛选器会过滤掉此Slave机器,防止读到很久之前的旧数据,而当主节点宕机后,切换逻辑会检查Slave上的Seconds_Behind_Master是否为0,为0时则表示主从同步,可以安全切换,否则不会切换。
重启mycat,连接创建测试数据
use TESTDB;
create table company(id int not null primary key,name varchar(50),addr varchar(255));
insert into company values(1,"facebook","usa");
结果:查看主从mysql上的db1,db2,db3上都创建了表company
如果你的mysql的复制模式为STATEMENT(可以在my.cnf中配置binlog_format="STATEMENT"),还可以这样测试。
mycat执行sql :
insert into company values(1,@@hostname,"usa");`
select * from company ;
可以看出,读取数据是从从mysql读出的
Linux下Mycat安装配置和使用的更多相关文章
- Linux下PHP安装配置MongoDB数据库连接扩展
Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)
准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...
- Linux下git安装配置
一.Linux下git安装配置 2013-07-28 20:32:10| 分类: 默认分类 | 标签:linux git server |举报|字号 订阅 http://abomby ...
- JDK1.6在LINUX下的安装配置[转]
JDK1.6在LINUX下的安装是如何进行的呢,让我们开始我们的演示: Ubuntu Linux下jdk的安装与配置 1.JDK1.6安装准备 从sun公司网站www.sun.com下载linux版本 ...
- (实用)Linux下Eclipse安装配置PyDev
记录备忘. PyDev是Eclipse下支持Python开发的IDE插件,本文介绍安装和配置PyDev插件的过程. 一.安装PyDev插件两种安装方法: 1.在eclipse的Help->Ins ...
- Linux下Tomcat安装配置
买了台阿里云服务器,因为配置比较低,所以用Linux系统,这里记录一下我在Linux系统中Tomcat的安装配置. 前提JDK已经安装好. 安装 首先在/usr/local/下建立一个tomcat的文 ...
- Linux下,安装配置Weblogic
环境说明 系统 -- Linux RHEL5 32bit 环境 -- 局域网中在192.168.0.140(windows)通过xshell连接服务器 软件 -- 1.JDK:1.5.0_15 2. ...
- Linux下ftp安装配置及三种用户的验证
一.原理简介 二.安装配置 三.三种用户的验证 一.简介 FTP即文件传输协议(File Transfer Protocol),完成各主机的文件共享功能,基于客户端-服务器的协议,工作在应用层,tcp ...
随机推荐
- 为什么将项目托管到Apache,浏览器输入http://127.0.0.1会跳转到http://127.0.0.1//dashboard/?
找到xampp安装的根目录下htdocs文件夹下的index.php文件 <?php if (!empty($_SERVER['HTTPS']) && ('on' == $_SE ...
- 第122题:买卖股票的最佳时机II
一. 问题描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交 ...
- Mycat简单配置
最近项目中需要用到Mycat来作为Mysql的分表中间件.所以稍微研究了一下. Mycat使用起来是非常方便,而且最重要的是配置简单,稍显麻烦的就是需要对库中的每一个表都进行配置. 记录一下最重要的几 ...
- HDU - 4352 - XHXJ's LIS(数位DP)
链接: https://vjudge.net/problem/HDU-4352 题意: a 到 b中一个数组成递增子序列长度等于k的数的个数 思路: 因为只有10个数,使用二进制维护一个递增序列,每次 ...
- learning java java.time相关类
var clock = Clock.systemUTC(); System.out.println(clock.instant()); System.out.println(clock.millis( ...
- 关灯问题II 状压DP
关灯问题II 状压DP \(n\)个灯,\(m\)个按钮,每个按钮都会对每个灯有不同影响,问最少多少次使灯熄完. \(n\le 10,m\le 100\) 状压DP的好题,体现了状压的基本套路与二进制 ...
- codevs 5958 无
5958 无 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 大师 Master 题解 题目描述 Description 无 输入描述 Input Descriptio ...
- 题解 CF1097F 【Alex and a TV Show】
妙妙题-- 这道题这要求%2的个数,肯定有什么性质 于是我们想到了用\(bitset\)来处理 由于三操作有\(gcd\),于是我们又想到用反演来解决 我们回忆一下反演的柿子 设\(f(x)\)为x出 ...
- Spring boot 解决跨域问题
import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.we ...
- Django基础(1)-虚拟环境的安装及配置
virtualenv介绍 (1)做什么的?virtualenv是用于创建独立的python环境,使得多个python应用彼此独立: (2)优点: a)使不同应用开发环境独立 b)环境升级不影响其他应用 ...