• 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

  • 相关阅读:
    丰清杨 作业 160809315
    自学C++游戏程序开发学习顺序(转)
    哈佛幸福课相关&积极心理学经典英文原版书籍读书笔记(连载中)(转)
    程序员追求的是什么?
    如何学好游戏编程?
    计算机专业的学生必须掌握的五门课程
    [译]学好数学能让程序员的水平更高
    天下没有免费的午餐
    各个类型书籍推荐
    Peter Norvig:自学编程,十年磨一剑
  • 原文地址:https://www.cnblogs.com/wenxiangchen/p/12895382.html
Copyright © 2020-2023  润新知