赞
踩
1.准备好三台虚拟机,并且每一台装好MySQL8
2.mysql-shell的安装包,下面用的版本:mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz下载链接直达
IP | 角色 |
---|---|
192.168.46.189 | 主,mysql-shell |
192.168.46.190 | 从1 |
192.168.46.191 | 从2 |
内容格式:
server_id= xxx #每一台的都不一样,要唯一
report_host=当前服务器ip
report_port= XXXX
loose-group_replication_ip_whitelist="ip1,ip2,ip3"
效果:
主
从1
从2
每一台修改完后,重启所有MySQL服务
systemctl restart mysqld
create user Famas identified by 'Famas@666';
GRANT BACKUP_ADMIN, CLONE_ADMIN, CREATE USER, EXECUTE, FILE, PERSIST_RO_VARIABLES_ADMIN, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SELECT, SHUTDOWN, SUPER, SYSTEM_VARIABLES_ADMIN ON *.* TO 'Famas'@'%' WITH GRANT OPTION;
GRANT DELETE, INSERT, UPDATE ON mysql.* TO 'Famas'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata.* TO 'Famas'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_bkp.* TO 'Famas'@'%' WITH GRANT OPTION;
GRANT ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, EXECUTE, INDEX, INSERT, LOCK TABLES, REFERENCES, SHOW VIEW, TRIGGER, UPDATE ON mysql_innodb_cluster_metadata_previous.* TO 'Famas'@'%' WITH GRANT OPTION;
grant all on *.* to 'Famas'@'%';
grant all privileges on *.* to Famas with grant option;
FLUSH PRIVILEGES;
上传或者下载mysql-shell的包官网连接,这里我上传到了/usr/src/目录下,然后对mysql-shell包进行解压,并将解压后的目录名改成简单的“mysql-shell”
wget https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz
解压
tar -xvf mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz
改名(非必须)
mv mysql-shell-8.0.23-linux-glibc2.12-x86-64bit mysql-shell
然后进入解压后的mysql-shell目录下的bin目录下面
cd ./mysql-shell/bin/
然后执行mysqlsh
./mysqlsh
成功后
用主库信息登录
\c Famas@192.198.46.189:3306
然后执行下面命令配置集群
dba.configureInstance('Famas@192.168.46.189:3306')
dba.configureInstance('Famas@192.168.46.190:3306')
dba.configureInstance('Famas@192.168.46.191:3306')
eg:
创建一个mysqlcluster的集群
var cluster=dba.createCluster('mysqlcluster');
上一步执行完mysqlcluster集群中只有一个Master()
dba.getCluster().status()
现在对集群中添加两个实例从1与从2
var cluster=dba.getCluster();
添加从1
cluster.addInstance('Famas@192.168.46.190:3306')
添加从2
cluster.addInstance('Famas@192.168.46.191:3306')
实例添加完成后就可以看看集群信息
cluster.status();
三个节点都有说明这个一主两从集群搭建成功,实验完成,主可读写(R/W),两个从只读(R/O)。自己可以在主库进行数据插入,然后看看从库有没有同步这里不再演示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。