mysql8源码安装和MGR

df -hl 查看磁盘空间情况
rz -be 解决上传大文件中断

一、安装xz命令
1.yum -y install bzip2 安装解压工具
tar -zxvf xz-5.2.5.tar.gz
cd xz-5.2.3/
mkdir /opt/software/zx
./configure --prefix=/opt/software/zx #指定安装目录
make && make install #编译并安装
ln -s /opt/software/zx /usr/local/bin/xz #建立软链接
2.添加xz的环境变量
vim ~/.bash_profile
将 :/opt/software/zx/bin 加入到 PATH=$PATH:$HOME/bin 一行之后(注意以冒号分隔)
source ~/.bash_profile
二、基于源码安装:
1.上传解压安装包
rz -be 上传安装包
或scp /usr/local/mysql/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz root@192.168.60.168:/usr/local
解压:tar -Jxf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/local
重命名:mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
2.创建用户组、用户和授权
groupadd mysql
useradd -g mysql mysql
创建data文件夹:mkdir data
授权:chown -R mysql.mysql /usr/local/mysql/
3.配置文件:(/etc/my.cnf)
4.初始化并记住密码
yum install -y libaio
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5.启动
./support-files/mysql.server start
6.登录mysql:
./bin/mysql -uroot -p
use mysql
修改用户密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
修改用户设定密码模式:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
创建远程登录对象:CREATE USER 'root'@'%' IDENTIFIED BY '123456';
授权远程登录:grant all privileges on *.* to 'root'@'%' with grant option;
强制刷新:flush privileges;
退出:exit;
7.启动、停止、重启命令 cd /usr/local/mysql
启动命令:./support-files/mysql.server start
重启命令:./support-files/mysql.server restart
停止命令:./support-files/mysql.server stop

三、MGR搭建
1.环境准备vi /etc/hosts
/etc/init.d/network restart
修改主机名和IP的映射关系
172.24.247.21 server-1
172.24.247.22 server-2
172.24.247.36 server-3
2.安装MGR插件
#登录mysql
./bin/mysql -uroot -p
#安装插件
install PLUGIN group_replication SONAME 'group_replication.so';
#查看group replication插件
show plugins;
3.配置复制环境
3.1修改配置文件my.cnf
3.2新建日志文件并授权
cd /var/log/
mkdir mysql
mkdir mgr-bin
mkdir mgr-relay
vi slow-query.log
chown -R mysql.mysql /var/log/mysql
3.3重启
cd /usr/local/mysql/
./support-files/mysql.server restart
3.4建立复制账号并启动group replication
#登录mysql
./bin/mysql -uroot -p
#关闭日志记录
set sql_log_bin=0;
#创建用户
create user mgr_repl@'%' identified by '123456';
#授权
grant replication slave on *.* to mgr_repl@'%';
#刷新权限
flush privileges;
#开启日志
set sql_log_bin=1;
#构建group replication集群
change master to master_user='mgr_repl',master_password='123456' for channel 'group_replication_recovery';
##设置group_replication_bootstrap_group为ON是为了标示以后加入集群的服务器以这台服务器为基准,以后加入的就不需要设置
set global group_replication_bootstrap_group=ON;
#作为首个节点启动MGR集群
start group_replication;
#关闭group_replication_bootstrap_group
set global group_replication_bootstrap_group=OFF;
#查看mgr的状态,查询表performance_schema.replication_group_members
select * from performance_schema.replication_group_members;
#group相关参数查看
show variables like 'group%';

杀死mysql进程
ps -e|grep mysql
sudo kill -9 mysql的进程号
sudo killall mysqld

stop group_replication;
reset master;
start group_replication;

 mysql配置文件my.cnf

[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character-set-server=utf8
skip-name-resolve
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# Group Replication
server-id=2
slow_query_log=1
log_queries_not_using_indexes=1
slow_query_log_file=/var/log/mysql/slow-query.log
log-bin=/var/log/mysql/mgr-bin
relay-log=/var/log/mysql/mgr-relay
#character_set_server=utf8mb4

# MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
transaction_isolation=READ-COMMITTED
gtid_mode=on
enforce_gtid_consistency=1 # 强制GTID一致性
binlog_format=row

# 因为集群会在故障恢复时互相检查binlog的数据,所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
log-slave-updates=1
# binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
binlog_checksum=NONE
# 基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
master_info_repository=TABLE
relay_log_info_repository=TABLE
# 记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
transaction_write_set_extraction = XXHASH64
# 加载group_replication插件
plugin_load_add='group_replication.so'

# 相当于此GROUP的名字,是UUID值,可以使用select uuid()生成
group_replication_group_name = 'd0a03705-9589-11ea-af6d-16ff871bc67f'
# 是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
group_replication_start_on_boot = OFF
# 本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
group_replication_local_address = '172.24.247.22:33061'
# 需要接受本MGR实例控制的服务器IP地址和端口,是MGR的端口,不是数据库的端口
group_replication_group_seeds = '172.24.247.21:33061,172.24.247.22:33061,172.24.247.36:33061'
# 开启引导模式,添加组成员,用于第一次搭建MGR或重建MGR的时候使用,只需要在集群内的其中一台开启
group_replication_bootstrap_group = OFF

原文地址:https://www.cnblogs.com/wenxiangchen/p/12895382.html