pxc5.7离线安装

##pxc5.7离线安装
pxc5.7yum安装已经在之前的博客里面写过了,接下来介绍通过无外网环境,只能使用内网yum,但是yum中缺少pxc5.7的情况下,需要自己下载安装包来进行安装pxc5.7.
—— 5.7yum安装文档

###服务器准备
| 服务器 |
| - |
| .168.124.16 |
|
.168.124.17 |

  • [x] 主机名修改

    1
    2
    3
    4
    5
    两台机器默认都是localhsot,分别修改两台主机名。名字自定义不要重复
    命令格式 :sudo hostnamectl set-hostname <newhostname>
    16 执行 sudo hostnamectl set-hostname pxc_mysql_16
    17 执行 sudo hostnamectl set-hostname pxc_mysql_17·
    检查方式 hostname 或者 reboot 重启查看
  • [x] 开启防火墙

    1
    2
    3
    4
    5
    6
    systemctl start firewalld
    firewall-cmd --add-port=3306/tcp --permanent
    firewall-cmd --add-port=4567/tcp --permanent
    firewall-cmd --add-port=4568/tcp --permanent
    firewall-cmd --add-port=4444/tcp --permanent
    firewall-cmd --reload
  • [x] 添加host 两台都要

    1
    2
    3
    4
    5
    vim /etc/hosts
    **.172.19.16 pxc_mysql_16
    **.172.19.17 pxc_mysql_17
    #私有源地址
    **.117.120.246 linux.siyou.**.**
  • [x] 配置内网yum

    1
    2
    3
    vim /etc/hosts
    **.172.19.16 pxc_mysql_16
    **.172.19.17 pxc_mysql_17
  • [x] 更改私有源地址 可选

    1
    参考地址:https://gitlab.com/XDOSC/WIFI/wikis/mirror-help/centos
    • [x] 安装依赖
    1
    2
    3
    yum install -y git scons gcc* gcc-c++ openssl* check cmake bison \
    boost-devel asio-devel libaio-devel ncurses-devel readline-devel pam-devel \
    socat perl-time-hires perl-io-socket-ssl.noarch perl-dbd-mysql.x86_64
    • [x] 文件准备
    1
    2
    3
    文件1:libev-4.15-1.el6.rf.x86_64.rpm
    文件2:percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
    文件3:Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gz
    • [x] 文件安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    放到/opt/mysql 目录
    rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
    rpm -ivh percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
    mv Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gz usr/local
    cd /usr/local/
    tar zxvf Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101.tar.gz
    ln -s Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101 pxc_mysql
    创建用户,新建文件夹请授权【2个节点都要操作】 :
    [root@localhost ~]# userdel mysql
    [root@localhost ~]# groupadd mysql
    [root@localhost ~]# useradd -g mysql mysql
    [root@localhost ~]# passwd mysql
    ##密码记住之后切换用户的时候需要用到
    [root@localhost ~]# mkdir -p /usr/local/pxc_mysql/{data,logs,tmp}
    [root@localhost ~]# mkdir -p /usr/local/pxc_mysql/logs/binlog
    [root@localhost ~]# chown -R mysql:mysql /usr/local/pxc_mysql/
    [root@localhost ~]# chmod -R +x /usr/local/pxc_mysql/
  • [x] 配置服务器之间ssh登录无密码验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ssh-keygen实现两台主机之间相互免密钥登录,保证两台机之间能ping通
    1)在所有的主机上执行:
    # ssh-keygen -t rsa
    2)将所有机子上公钥(id_rsa.pub)导到一个主机的/root/.ssh/authorized_keys文件中,然后将authorized_keys分别拷贝到所有主机上,以17 服务器命令为例子,16服务器上只要改用17的ip就可以了。
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    ssh 10.172.19.16 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    scp /root/.ssh/authorized_keys 10.172.19.16:/root/.ssh/authorized_keys
    scp /root/.ssh/authorized_keys 10.172.19.16:/root/.ssh/authorized_keys
    两台服务器都要
    16 服务器命令为例子,17服务器上只要改用16的ip就可以了。
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    ssh 10.172.19.17 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    scp /root/.ssh/authorized_keys 10.172.19.17:/root/.ssh/authorized_keys
    scp /root/.ssh/authorized_keys 10.172.19.17:/root/.ssh/authorized_keys
    16上测试:ssh 10.172.19.17
    • [x] 重启服务器
    1
    reboot
    • [x] 配置my.cnf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    两台服务都要执行引链
    ln -s /usr/local/pxc_mysql/bin/mysql /usr/bin
    ln -s /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/mysql.sock /tmp/mysql.sock
    3、切换mysql用户创建my.cnf ,两台都需要此操作修改点看注释
    su mysql
    输入密码为之前创建的时候设置的
    cd /usr/local/pxc_mysql/
    vi my.cnf
    # Template my.cnf for PXC
    # Edit to your requirements.
    [client]
    socket=/usr/local/pxc_mysql/data
    [mysqld]
    #需要修改点节点一般设置为服务的ip最后两三位,两台不一致
    server-id=17
    port = 3306 #默认
    basedir=/usr/local/pxc_mysql
    datadir=/usr/local/pxc_mysql/data
    socket=/usr/local/pxc_mysql/data/mysql.sock
    log-error=/usr/local/pxc_mysql/data/mysqld.log
    pid-file=/usr/local/pxc_mysql/data/mysqld.pid
    log-bin=/usr/local/pxc_mysql/logs
    slow_query_log_file = /usr/local/pxc_mysql/data/slow.log
    log_slave_updates
    expire_logs_days=7
    binlog_format=ROW
    innodb_buffer_pool_size = 1524M
    lower_case_table_names=1
    #pxc
    wsrep_provider=/usr/local/pxc_mysql/lib/libgalera_smm.so
    wsrep_cluster_name=pxc-nie#集群名字:两台服务器一样即可
    #集群之间的IP,建议将本机ip放在最后。
    wsrep_cluster_address=gcomm://10.172.19.16,10.172.19.17
    wsrep_node_name=pxc_mysql_17 #本主机名开始修改的 两台不一样
    wsrep_node_address=10.172.19.17 #本机IP两台不一样
    wsrep_sst_method=xtrabackup-v2 #参数可百度。最优参数这个
    wsrep_sst_auth=pxc:echo@2018 #数据同步用户
    pxc_strict_mode=PERMISSIVE#参数可百度
    binlog_format=ROW
    default_storage_engine=InnoDB
    innodb_buffer_pool_size = 60G
    sql_mode=STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
    #ROW_FORMAT = DYNAMIC
    binlog_format = row
    max_binlog_size = 512M
    expire-logs-days = 7
    slave-net-timeout=30
    skip-external-locking
    skip_name_resolve = 1
    default-storage-engine = InnoDB
    wait_timeout=3600
    interactive_timeout=3600
    connect_timeout = 20
    #
    #######per_thread_buffers#####################
    max_connections=3000
    max_user_connections=3000
    max_connect_errors=3000
    #
    max_allowed_packet = 64M
    table_open_cache = 6144
    table_definition_cache = 4096
    #
    ################InnoDB###########################
    innodb_buffer_pool_instances = 8
    innodb_flush_method = O_DIRECT
    innodb_io_capacity = 300
    innodb_max_dirty_pages_pct = 80
    innodb_log_file_size = 1024M
    innodb_log_buffer_size = 512M
    innodb_log_files_in_group = 3
    innodb_flush_log_at_trx_commit = 1
    performance_schema=ON
    transaction_isolation = READ-COMMITTED
    #
    innodb_file_format = Barracuda
    innodb_file_per_table = 1
    innodb_strict_mode=off
    max_allowed_packet = 1G
    • [x]初始化每个节点的mysql
    /usr/local/pxc_mysql/bin/mysqld --defaults-file=/usr/local/pxc_mysql/my.cnf --datadir=/usr/local/pxc_mysql/data  --basedir=/usr/local/pxc_mysql  --initialize
    
  • [x]启动第一个节点

    以root启动
    su root 
    [root@node1 pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --wsrep-new-cluster --user=mysql &  
    查询密码的命令
    grep "temporary password" /usr/local/pxc_mysql/data/mysqld.log
    然后进入MySQL,执行如下操作(如果进不去,报错密码过期,那么在my.cnf文件加入:skip-grant-tables,然后无密码进入数据库: update mysql.user set password_expired="N" where user="root"; 最后把参数从配置文件去掉,重启数据库,用刚才的root密码进入即可。)
    Mysql 命令:
    alter user 'root'@'localhost' identified by 'xd_hs_db@2018';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xd_hs_db@2018' WITH GRANT OPTION;
    #注意 创建的pxc 用户不是凭空创建的是之前配置集群设置的
    mysql> create user 'pxc'@'localhost' identified by 'echo@2018';
    mysql> grant reload, lock tables, replication client, process on *.* to 'pxc'@'localhost';
    
    • [x]初始化每个节点的mysql
    /usr/local/pxc_mysql/bin/mysqld --defaults-file=/usr/local/pxc_mysql/my.cnf --datadir=/usr/local/pxc_mysql/data  --basedir=/usr/local/pxc_mysql  --initialize
    
    • [x]依次启动第二个节点
    [root@node2 pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --user=mysql &
    
    • [x]依次启动第二个节点
    集群测试:在16上执行
    mysql -uroot -pxd_hs_db@2018
    mysql> show variables like 'version';
    +---------------+--------------+
    | Variable_name | Value |
    +---------------+--------------+
    | version | 5.7.23-23-31.31-log  |
    +---------------+--------------+
    1 row in set (0.00 sec)
    mysql> create database pxcdb;
    mysql> use pxcdb;
    mysql> create table t1(id tinyint,ename varchar(20));
    mysql> insert into t1 values(1,'SongxiaoLang');
    登录17检查
    select * from pxcdb.t1;
    --查看集群状态
    mysql> show status like '%wsrep_clust%';
    +--------------------------+--------------------------------------+
    | Variable_name            | Value                                |
    +--------------------------+--------------------------------------+
    | wsrep_cluster_weight     | 2                                    |
    | wsrep_cluster_conf_id    | 8                                    |
    | wsrep_cluster_size       | 2                                    |
    | wsrep_cluster_state_uuid | 77cb307c-f93e-11e8-9433-260dd7fec691 |
    | wsrep_cluster_status     | Primary                              |
    +--------------------------+--------------------------------------+
    5 rows in set (0.00 sec)
    
    • [x]集群突发事件重启
    #查看mysql还有哪个活着可以通过连接数据查看。
    如果都挂了。
    find / -name grastate.dat 查看dat文件在哪,然后查看哪个是1
    如果都是0.那么将一台safe_to_bootstrap:的值修改为1;
    然后按照,启动第一个节点的命令去启动。第二个节点则以启动第二个节点的命令去启动。
    停止pxc集群目前此版本还没有找到好的命令只能通过
    //查看mysql的进程ps -aux|grep mysql
    必要时删除进程 kill -9 pid(mysql)
    [root@pxc_mysql_17 ~]# find / -name grastate.dat
    /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat
    [root@pxc_mysql_17 ~]# find /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat^C
    [root@pxc_mysql_17 ~]# more /usr/local/Percona-XtraDB-Cluster-5.7.23-rel23-31.31.2.Linux.x86_64.ssl101/data/grastate.dat
    # GALERA saved state
    version: 2.1
    uuid:    77cb307c-f93e-11e8-9433-260dd7fec691
    seqno:   -1
    safe_to_bootstrap: 0
    

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,