mysql集群模式 实践(主从、Mycat)

mysql安装教程

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz /usr/local/
cd /usr/local/
tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
#拷贝mysql配置
cp mysql/support-files/my-default.cnf /etc/my.cnf   
#启动脚本
cp mysql/support-files/mysql.server  /etc/init.d/mysqld
#安装组件
yum install -y autoconf ncurses-devel libaio-devel glib       
#安装mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#配置环境变量
vim /etc/profile.d/mysql.sh 
#文件内容
export PATH="/usr/local/mysql/bin:$PATH"
#文件内容
source /etc/profile    
#启动
service mysql start

静态IP设置

vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE="ens33"
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
BOOTPROTO="static"
BROADCAST="192.168.222.255"
#此处网关需要跟虚拟机的nat一样
GATEWAY="192.168.222.2"
IPADDR="192.168.222.37"
NETMASK="255.255.255.0"
ONBOOT="yes"
DNS1="114.114.114.114"

在这里插入图片描述

service network restart
ping baidu.com

然后克隆几台虚拟机出来,并且设置好静态IP

mysql集群模式: 主从、主主、中间件Mycat、MysqlClustor
其中主主模式可以理解为两个节点互相同步对方

 vim /etc/my.cnf
#多少台mysql就设置多少个id,id不能相同
server-id  = 2 

在slave上同步master

mysql -uroot  -p
设置备份权限
grant replication slave on *.*  to  'root'@'%'  identified by '123456';
#设置全部权限
#GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
SHOW MASTER STATUS;
#看上一步的file和pos
change master to master_host='masterip',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0;
start slave;
show slave status\G;

看到这些就是已经连上了master并且已经在同步master
Slave_IO_Running: YES
Slave_SQL_Running: Yes

mycat中间件

 wget http://dl.mycat.org.cn/1.6.7.3/20210913163959/Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz
mv Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz /usr/local/
cd /usr/local/
tar -zxvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz
#配置环境变量
vim /etc/profile.d/mycat.sh 
#文件内容
export PATH="/usr/local/mycat/bin:$PATH"
#文件内容
source /etc/profile    
 vim /usr/local/mycat/conf/schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<!--mycat 上的schema  映射到dataNode的database-->
	<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100">
		<!--mycat 上的table 只有在这里设置的table才能在mycat上看到  要在mycat上新增表都得在这里添加-->
		<!--dataNode=dn1,dn2   此处可用一台节点演示-->
		<table name="customer" primaryKey="ID" dataNode="dn1"
			   rule="sharding-by-intfile">
		</table>
		 <table name="oc_call" primaryKey="ID" dataNode="dn1" rule="latest-month-calldate"
			/> 
		 <table name="oc_call3" primaryKey="ID" dataNode="dn1" rule="latest-month-calldate"
			/> 
	</schema>
	<!--mysql的实际数据库映射到mycat的database-->
	<dataNode name="dn1" dataHost="localhost1" database="mysql" />
	<!-- <dataNode name="dn2" dataHost="localhost1" database="mysql" /> -->
	<!-- 设置节点包含 读写节点 可以理解为写节点为Master节点 读节点为Slave -->
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.222.37:3306" user="root"
				   password="123456">
			<readHost host="hostS2" url="192.168.222.37:3306" user="root" password="123456" />
		</writeHost>
	</dataHost>
</mycat:schema>

mycat console
在这里插入图片描述
如果遇到这种情况,是因为dn节点数不够,可以修改partition-hash-int

 vim /usr/local/mycat/conf/partition-hash-int.txt

里面默认是2行,默认2节点,可以根据实际节点修改行
重新启动 mycat console
在这里插入图片描述

#启动后台模式
mycat start 
#启动控制台模式
mycat console
#mycat日志
tail -1000f /usr/local/mycat/logs/mycat.log
#登录mycat
mysql -uroot -p123456 -P8066 -h192.168.222.36

参考文章

  1. https://blog.youkuaiyun.com/qq_55184535/article/details/125318708
  2. https://blog.youkuaiyun.com/qf2019/article/details/119798326
  3. https://blog.youkuaiyun.com/daqu1314/article/details/121381362
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值