mysql8安装以及MySQL InnoDB Cluster集群安装
安装环境介绍
mysql官方下载地址:https://dev.mysql.com/downloads/
Centos7(CentOS-7-x86_64-Everything-1708.iso)
Mysql8.0.13(mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar)
Mysql-shell8.0.13(mysql-shell-8.0.11-1.el7.x86_64.rpm)
Mysql-router8.0.13(mysql-router-8.0.11-1.el7.x86_64.rpm)
准备环境
centos7物理机或者虚拟机三台(python版本要在2.7以上)
192.168.9.100
192.168.9.102
192.168.9.105
由于mysql集群连接是通过本机的hostname进行连接所以要对集群内的节点进行映射
vi /etc/hosts
192.168.9.100 vm001
192.168.9.102 vm002
192.168.9.105 vm003
三台虚拟机分别设置hostname
192.168.9.100:hostnamectl set-homename vm001
192.168.9.102:hostnamectl set-homename vm002
192.168.9.105:hostnamectl set-homename vm003
设置192.168.9.100到其他两台机器的免密登录。
在192.168.9.100机器执行如下命令:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.9.102
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.9.105
关闭防火墙和selinux
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
关闭 selinux
使用getenforce命令查看状态
修改文件
vi /etc/selinux/config
设置
SELINUX=disabled
需要重启
mysql安装
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL
- 命令查看mariadb的安装包:rpm -qa | grep mariadb
- 卸载上述查询mariabd安装包:rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
- 解压tar包:tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
- 命令安装 common:rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps --force
- 命令安装 libs:rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force
- 命令安装 client:rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force
- 命令安装 server:rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force
- 初始化:mysqld --initialize;
- 赋访问权限:chown mysql:mysql /var/lib/mysql -R
- 启动mysql服务:systemctl start mysqld.service;
- 设置mysql开机自启:mysql systemctl enable mysqld;
- 命令查看数据库的密码:cat /var/log/mysqld.log | grep password
- 进入mysql命令行:mysql -uroot -p (输入上述查看的数据库密码进入mysql命令行)
- 命令来修改密码: ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘设置的密码’;
- 创建远程访问权限:
create user ‘root’@‘%’ identified with mysql_native_password by ‘设置的密码’;
grant all privileges on . to ‘root’@‘%’ with grant option;
flush privileges; - 命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘设置的密码’ PASSWORD EXPIRE NEVER;
flush privileges;
mysql shell安装
- 分别在三台机器上安装mysql-shell,命令如下:rpm -ivh mysql-shell-8.0.12-1.el7.x86_64.rpm --nodeps --force
- 分别在三台机器执行mysqlshell,
以192.168.9.100为例:
mysqlsh --uri root@vm001:3306
执行:dba.configureLocalInstance(),输入两次y - 退出mysqlshell:ctrl+z
- 重新启动mysql服务:systemctl restart mysqld
- 检测是否就绪:dba.checkInstanceConfiguration(‘root@vm001:3306’)
- 只需要一台上创建cluster:var cluster = dba.createCluster(‘mlampCluster’);
- 将另外两台添加进入:
cluster.addInstance(‘root@vm002:3306’);
cluster.addInstance(‘root@vm003:3306’); - 查看状态 为ONLINE 说明集群安装成功:cluster.status()
mysql router安装
- 安装mysqlrouter:rpm -ivh mysql-router-8.0.12-1.el7.x86_64.rpm --nodeps --force
- vi /etc/mysqlrouter/mysqlrouter.conf设置连接数: max_connections=1024
[DEFAULT]
logging_folder = /var/log/mysqlrouter/
plugin_folder = /usr/lib64/mysqlrouter
runtime_folder = /var/run/mysqlrouter
config_folder = /etc/mysqlrouter
[logger]
level = INFO
[routing:read_write]
bind_address = 192.168.9.102
bind_port = 7001
mode = read-write
destinations = vm001:3306,vm002:3306
protocol=classic
max_connections=1024
[routing:read_only]
bind_address = 192.168.9.102
bind_port = 7002
mode = read-only
destinations = vm002:3306,vm003:3306
protocol=classic
max_connections=1024
[keepalive]
interval = 60
- 重启mysqlrouter:systemctl restart mysqlrouter