MySQL 8.0 Innodb Cluster搭建
环境介绍: 10.10.10.65 MySQL router 路由节点 10.10.10.205 MGR节点 10.10.10.206 MGR节点 10.10.10.207 MGR节点 三台服务器添加/etc/hosts 对IP的映射 10.10.10.205 testdb205 10.10.10.206 testdb206 10.10.10.207 testdb207 安装MySQL Shell 使用root用户进行安装,需要在所有节点执行 rpm -ivh MySQL-shell-8.0.18-1.el8.x86_64.rpm 通过MySQL Shell 连接MySQL节点 在各主机上分别用MySQL Shell 登录,并创建管理用户 # 在 10.10.10.205 mysqlsh root@"10.10.10.205:3306" JS> dba.configureInstance('root@10.10.10.205:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"}) # 在 10.10.10.206 mysqlsh root@"10.10.10.206:3306" JS> dba.configureInstance('root@10.10.10.206:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"}) # 在 10.10.10.207 mysqlsh root@"10.10.10.207:3306" JS> dba.configureInstance('root@10.10.10.207:3306',{clusterAdmin:"'clusteruser'@'%'",clusterAdminPassword:"Jimstars"}) 创建集群 在任一节点执行创建cluster操作(建议在主节点执行,这里的节点为10.10.10.82),集群内节点离线自动尝试加入次数,每五分钟加入一次。 JS > var cluster = dba.createCluster('mycluster',{autoRejoinTries:10,expelTimeout:5}) 添加另外两个节点 只用在一个节点执行,可以直接在上面使用的节点执行,需要添加的节点地址可修改的部分:clusteruser@10.10.10.206:3306 JS > cluster.addInstance('clusteruser@10.10.10.206:3306'); Please select a recovery method [C]lone/[I]ncremental recovery/[A]bort (default Clone): C A]bort (default Clone): C JS > cluster.addInstance('clusteruser@10.10.10.207:3306'); Please select a recovery method [C]lone/[I]ncremental recovery/[A]bort (default Clone): C A]bort (default Clone): C 添加完成后可以查看集群状态,执行下面操作 JS > cluster.status() 安装MySQL Router rpm -ivh mysql-router-community-8.0.22-1.el7.x86_64.rpm 创建MySQL Router目录 mkdir -p /mysqlrouter chown -R mysqlrouter:mysqlrouter /mysqlrouter 生成MySQL Router 配置文件 cd /mysqlrouter mysqlrouter --bootstrap clusteruser@10.10.10.205:3306 --directory /mysqlrouter --user=mysqlrouter --conf-use-sockets 配置MySQL Router服务和自启动 vi /usr/lib/systemd/system/mysql-router.service [Unit] Description=MySQL Router Service After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysqlrouter Group=mysqlrouter Type=forking #Remove pid File before start. Ignore the return value ExecStartPre=-/usr/bin/rm /mysqlrouter/mysqlrouter.pid #Service Start ExecStart=/mysqlrouter/start.sh #Service Stop ExecStop=/mysqlrouter/stop.sh #Service Restart On Failure Restart=on-failure #Service Restart Retries after 5s wait RestartSec=5s LimitNOFILE=65535 修改后重载配置生效 systemctl daemon-reload 使用root用户运行命令,使服务注册 systemctl enable mysql-router.service 使用root用户启动服务 systemctl start mysql-router.service