首页 > 其他 > 详细

Mycat读写分离

时间:2019-07-11 11:56:35      阅读:107      评论:0      收藏:0      [点我收藏+]

 

 

大概架构如下:

 

技术分享图片

 

        IP     主机名       OS
192.168.1.177  mycat    CentOS7.4.1708
192.168.1.184    master   CentOS7.4.1708
192.168.1.185      salve     CentOS7.4.1708

 

 

 

#master、slave端安装mysql(这里使用同一个脚本)

master、slave端安装mysql(这里使用脚本)
cat>>~/mysql.sh<<EOF
#!/bin/bash
#Centox7已经不支持mysql,因为一部分原因(比如收费)所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以必须先卸载掉mariadb
for i in `rpm -qa|grep mariadb`;do rpm -e --nodeps $i;done
for i in `rpm -qa|grep mysql`;do rpm -e --nodeps $i;done
#安装mysql依赖
yum -y install wget make cmake zlib-devel gcc gcc-c++ libtool openssl openssl-devel autoconf automake pcre* gd gd-devel bison ncurses ncurses-devel
#下载mysql包
[ ! -d /opop ] && mkdir /opop
cd /opop
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz
tar -zxvf mysql-boost-5.7.25.tar.gz
cd mysql-5.7.25/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/opop/mysql-5.7.25/boost/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
make -j2 && make install
EOF

 

#执行脚本
sh opop.sh

 

#创建数据存储目录
mkdir -p /usr/local/mysql/data 
chown -R mysql.mysql /usr/local/mysql/

#新创建并配置my.cnf文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
####开启gtid
server-id=184
gtid-mode=on
enforce-gtid-consistency=true
log-bin-index=master-bin.index
log_bin=master-binlog
log-slave-updates = ON
binlog-checksum = CRC32
master-verify-checksum = 1
####
port=3306
socket=/usr/local/mysql/mysql.sock
character-set-server=utf8
pid-file=/usr/local/mysql/mysqld.pid
log-error=/var/log/mysqld.log
explicit_defaults_for_timestamp=true

#注意1:slave在创建并编辑my.cnf,需将server-id换成其他值(这里是以IP最后一位定义)

#注意2:slave端关于Gtid在my.cnf中需开启项
log-slave-updates = ON
log-bin=slave-binlog
master-info-repository=TABLE       #Slave配置需要
relay-log-info_repository=TABLE    #Slave配置需要
binlog-format=ROW            #Slave配置需要
server_id=185
gtid-mode=on           #开启GTID需要
enforce-gtid-consistency=true    #开启GTID需要
binlog-checksum=CRC32
master-verify-checksum=1
skip_slave_start=1

 


#配置MySQL启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

#修改路径:
vim /etc/init.d/mysqld
....
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

#配置环境变量(追加)
echo ‘export PATH=/usr/local/mysql/bin:$PATH‘>>/etc/profile
#使变量生效
source /etc/profile

#创建其他相关文件
touch /var/log/mysqld.log
chown -R mysql.mysql /var/log/mysqld.log
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql.mysql /var/log/mariadb/

#初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#注意:此时会有产生mysql的root用户登录密码,执行grep "localhost" /var/log/mysqld.log最后一串字符串就是,大概是这样的:CaMpm!9evsG_ 或者 faQ!BoB1Jytk

技术分享图片

 

#启动数据库
/etc/init.d/mysqld start

#修改mysql的root用户登录密码为123456
mysql -uroot -p    #输入上面筛选出来的密码
alter user user() identified by ‘123456‘;
grant all privileges on *.* to ‘root‘@‘localhost‘ identified by ‘123456‘;
grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘;
exit
mysql -uroot -p    #重新登录进行测试

技术分享图片

 

 

 


#Master端配置Gtid
shell> mysql -uroot -p
mysql> create user zhangsan;
mysql> grant replication slave on *.* to ‘zhangsan‘@‘%‘identified by ‘123456‘;
mysql> flush privileges;

技术分享图片

 

 

#Slave端配置Gtid
mysql> change master to
master_host=‘192.168.1.184‘,
master_port=3306,
master_user=‘zhangsan‘,
master_password=‘123456‘,
master_auto_position=1;

mysql> start slave;

技术分享图片

 


mysql> show slave status\G;

技术分享图片

 

 

#Master端测试

技术分享图片

技术分享图片

 

 

#Slave端测试

技术分享图片

技术分享图片

 

Mycat读写分离

原文:https://www.cnblogs.com/smlile-you-me/p/11168448.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!