MyCAT--环境准备

1.1 环境准备:
两台虚拟机 db01 db02
每台创建四个mysql实例:3307 3308 3309 3310
在这里插入图片描述
1.2 创建相关目录初始化数据
mkdir /data/33{07…10}/data -p
mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3310/data --basedir=/application/mysql

1.3 准备DB01配置文件和启动脚本
cat >/data/3307/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
port=3307
log-error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=row
skip-name-resolve
server-id=7
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3308/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log
log_bin=/data/3308/mysql-bin
binlog_format=row
skip-name-resolve
server-id=8
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3309/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
port=3309
log-error=/data/3309/mysql.log
log_bin=/data/3309/mysql-bin
binlog_format=row
skip-name-resolve
server-id=9
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3310/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3310/data
socket=/data/3310/mysql.sock
port=3310
log-error=/data/3310/mysql.log
log_bin=/data/3310/mysql-bin
binlog_format=row
skip-name-resolve
server-id=10
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

使用systemctl的方式管理
cat >/etc/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3310.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3310/my.cnf
LimitNOFILE = 5000
EOF

1.4 准备DB02配置文件和启动脚本

cat >/data/3307/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
port=3307
log-error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=row
skip-name-resolve
server-id=17
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3308/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log
log_bin=/data/3308/mysql-bin
binlog_format=row
skip-name-resolve
server-id=18
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3309/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
port=3309
log-error=/data/3309/mysql.log
log_bin=/data/3309/mysql-bin
binlog_format=row
skip-name-resolve
server-id=19
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3310/my.cnf<<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3310/data
socket=/data/3310/mysql.sock
port=3310
log-error=/data/3310/mysql.log
log_bin=/data/3310/mysql-bin
binlog_format=row
skip-name-resolve
server-id=20
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/etc/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3310.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3310/my.cnf
LimitNOFILE = 5000
EOF

1.5 修改权限,启动多实例
chown -R mysql.mysql /data/*
systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309
systemctl start mysqld3310

1.6 验证
mysql -S /data/3307/mysql.sock -e “show variables like ‘server_id’”
mysql -S /data/3308/mysql.sock -e “show variables like ‘server_id’”
mysql -S /data/3309/mysql.sock -e “show variables like ‘server_id’”
mysql -S /data/3310/mysql.sock -e “show variables like ‘server_id’”

1.7 节点主从规划
箭头指向谁是主库
10.0.0.51:3307 <-----> 10.0.0.52:3307
10.0.0.51:3309 ------> 10.0.0.51:3307
10.0.0.52:3309 ------> 10.0.0.52:3307

10.0.0.52:3308 <-----> 10.0.0.51:3308
10.0.0.52:3310 -----> 10.0.0.52:3308
10.0.0.51:3310 -----> 10.0.0.51:3308

1.8 分片规划
shard1:
Master:10.0.0.51:3307
slave1:10.0.0.51:3309
Standby Master:10.0.0.52:3307
slave2:10.0.0.52:3309
shard2:
Master:10.0.0.52:3308
slave1:10.0.0.52:3310
Standby Master:10.0.0.51:3308
slave2:10.0.0.51:3310

1.9 开始配置

#第一组四节点结构

#10.0.0.51:3307 <-----> 10.0.0.52:3307

##db02:
mysql -S /data/3307/mysql.sock -e “grant replication slave on *. * to repl@‘10.0.0.%’ identified by ‘123’;”
mysql -S /data/3307/mysql.sock -e “grant all on *. * to root@‘10.0.0.%’ identified by ‘123’ with grant option;”

##db01:
mysql -S /data/3307/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.52’, MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3307/mysql.sock -e “start slave;”
mysql -S /data/3307/mysql.sock -e “show slave status\G”

##db02:
mysql -S /data/3307/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’, MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3307/mysql.sock -e “start slave;”
mysql -S /data/3307/mysql.sock -e “show slave status\G”

========================================================================

#10.0.0.51:3309 ------> 10.0.0.51:3307
##db01:
mysql -S /data/3309/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’, MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3309/mysql.sock -e “start slave;”
mysql -S /data/3309/mysql.sock -e “show slave status\G”

#10.0.0.52:3309 ------> 10.0.0.52:3307
##db02:
mysql -S /data/3309/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.52’, MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3309/mysql.sock -e “start slave;”
mysql -S /data/3309/mysql.sock -e “show slave status\G”

#第二组四节点
#10.0.0.52:3308 <-----> 10.0.0.51:3308
##db01:
mysql -S /data/3308/mysql.sock -e “grant replication slave on . to repl@‘10.0.0.%’ identified by ‘123’;”
mysql -S /data/3308/mysql.sock -e “grant all on . to root@‘10.0.0.%’ identified by ‘123’ with grant option;”

##db02:
mysql -S /data/3308/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’, MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3308/mysql.sock -e “start slave;”
mysql -S /data/3308/mysql.sock -e “show slave status\G”

##db01:
mysql -S /data/3308/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.52’, MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3308/mysql.sock -e “start slave;”
mysql -S /data/3308/mysql.sock -e “show slave status\G”

#10.0.0.52:3310 -----> 10.0.0.52:3308

##db02:
mysql -S /data/3310/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.52’, MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3310/mysql.sock -e “start slave;”
mysql -S /data/3310/mysql.sock -e “show slave status\G”

#10.0.0.51:3310 -----> 10.0.0.51:3308
##db01:
mysql -S /data/3310/mysql.sock -e “CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’, MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER=‘repl’, MASTER_PASSWORD=‘123’;”
mysql -S /data/3310/mysql.sock -e “start slave;”
mysql -S /data/3310/mysql.sock -e “show slave status\G”

1.10 检测主从状态
mysql -S /data/3307/mysql.sock -e “show slave status\G”|grep Yes
mysql -S /data/3308/mysql.sock -e “show slave status\G”|grep Yes
mysql -S /data/3309/mysql.sock -e “show slave status\G”|grep Yes
mysql -S /data/3310/mysql.sock -e “show slave status\G”|grep Yes

猜你喜欢

转载自blog.csdn.net/qq_44788449/article/details/107025471