CentOS7.7バイナリ導入MySQLマルチバージョンマルチインスタンス実戦

8375 ワード

第一章需要説明
  • は、MySQL 5.7の3つのマルチインスタンス環境(ポートはそれぞれ330733083309)
  • を導入する.
  • 導入MySQL 5.6および8.0バージョンのデータベース・インスタンス(ポートはそれぞれ3316および3326)
  • 第二章環境準備
    1.仮想マシン環境
    $ hostname -I 
      10.0.1.51
    $ hostname
      db01
    $ cat /etc/redhat-release 
      CentOS Linux release 7.7.1908 (Core)
    

    2.仮想マシンの最適化
    #   Selinux
    $ setenforce 0
    $ sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
    
    #      
    $ systemctl stop firewalld
    $ systemctl disable firewalld
    $ iptables-save
    
    #   yum 
    $ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori
    $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    $ sed  -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo 
    
    #   epel 
    $ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    #   yum  
    $  yum clean all
    $ yum makecache fast
    
    #   NetworkManager
    $ systemctl stop NetworkManager
    $ systemctl disable NetworkManager
    
    #        
    $ echo '* - nofile 65535' >>/etc/security/limits.conf 
    

    3.環境の整理
    ①インストールしたmysqlをアンインストールする
    $ rpm -qa | grep mysql
    #     
    mysql-community-common-8.0.18-1.el7.x86_64
    mysql-community-client-8.0.18-1.el7.x86_64
    mysql-community-libs-8.0.18-1.el7.x86_64
    
    #                
    $ yum remove mysql-xxx-xxx-
    

    ②mysqlのプロファイルを削除する
    $ find / -name mysql|xargs rm -fr
    

    ③MariaDBのファイルを削除する
    $ rpm -qa | grep mariadb
    $ rpm -e mariadb-xxx --nodeps
    

    ④myを削除する.cnf
    $ rm -fr /etc/my.cnf
    

    ⑤ポートが占有されていないかチェックする
    $ which mysql
    $ pkill mysqld
    $ netstat -lntup|egrep '3307|3308|3309|3316|3326'
    

    4.パッケージの準備
    MySQL公式ダウンロードアドレスバイナリパッケージ略をダウンロードします.
    5.ディレクトリの準備
    $ rm -rf /data/*
    
    # MySQL    
    $ mkdir -p /data/app
    
    # MySQL    
    $ mkdir -p /data/330{7,8,9}/data
    $ mkdir -p /data/33{16,26}/data
    
    # Scoket  
    $ mkdir -p /data/socket
    

    第三章MySQL 5の配置7マルチインスタンス
    1.パッケージを解凍してソフト接続を作成する
    $ tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
    $ mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
    $ ln -s /data/app/mysql-5.7.28 /data/app/mysql5728
    

    2.MySQLマルチインスタンス構成の作成
    # 3307    
    $ cat > /data/3307/my.cnf < /data/3308/my.cnf < /data/3309/my.cnf <

    3.MySQL傀儡ユーザーを作成し、許可する
    $ useradd -s /sbin/nologin -M mysql
    $ id mysql
    $ chown -R mysql.mysql /data
    

    4.初期化
    $ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3307/data
    $ echo $?
    
    $ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3308/data
    $ echo $?
    
    $ /data/app/mysql5728/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5728 --datadir=/data/3309/data
    $ echo $?
    

    5.systemd起動スクリプトの作成
    # 3307         
    $ cat > /etc/systemd/system/mysqld3307.service < /etc/systemd/system/mysqld3308.service < /etc/systemd/system/mysqld3309.service <

    6.マルチインスタンスの起動
    $ systemctl start mysqld3307
    $ systemctl start mysqld3308
    $ systemctl start mysqld3309
    $ netstat -lntup|grep mysqld
      tcp6   0   0  :::3307    :::*     LISTEN   2093/mysqld         
      tcp6   0   0  :::3308    :::*     LISTEN   2127/mysqld         
      tcp6   0   0  :::3309    :::*     LISTEN   2161/mysqld 
    

    7.アブソパス登録MySQLマルチインスタンス
    $ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3307.sock
    $ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3308.sock
    $ /data/app/mysql5728/bin/mysql -S /data/socket/mysql3309.sock
    

    第四章MySQL 5の配置6単一インスタンス
    1.パッケージを解凍してソフト接続を作成する
    $ tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
    $ mv mysql-5.6.46-linux-glibc2.12-x86_64 mysql-5.6.46
    $ ln -s ln -s mysql-5.6.46 mysql5646
    

    2.MySQLインスタンス構成の作成
    cat > /data/3316/my.cnf <

    3.mysql傀儡ユーザーを作成し、許可する
    $ chown -R mysql.mysql /data
    

    4.初期化
    $ /data/app/mysql5646/scripts/mysql_install_db  --user=mysql --basedir=/data/app/mysql5646 --datadir=/data/3316/data
    $ echo $?
    

    5.systemd起動スクリプトの作成
    cat > /etc/systemd/system/mysqld3316.service <

    6.起動例
    $ systemctl daemon-reload
    $ systemctl start mysqld3316.service
    $ netstat -lntup|grep mysqld
      tcp6  0  0 :::3316    :::*    LISTEN      2516/mysqld
    

    7.絶対パス登録MySQL
    $ /data/app/mysql5646/bin/mysql -S /data/socket/mysql3316.sock
    

    第五章MySQL 8の配置0単一インスタンス
    1.パッケージを解凍してソフト接続を作成する
    $ tar xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
    $ mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql-8.0.18
    $ ln -s mysql-8.0.18 mysql8018
    

    2.MySQLインスタンス構成の作成
    cat > /data/3326/my.cnf <

    3.mysql傀儡ユーザーを作成し、許可する
    $ chown -R mysql.mysql /data
    

    4.依存関係のインストールと初期化
    $ yum install -y perl-DBD-MySQL perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
    $ /data/app/mysql8018/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql8018 --datadir=/data/3326/data
    $ echo $?
    

    5.systemd起動スクリプトの作成
    cat > /etc/systemd/system/mysqld3326.service <

    6.起動例
    $ systemctl start mysqld3326.service 
    $ netstat -lntup|grep mysqld
      tcp6       0      0 :::3326    :::*    LISTEN      2686/mysqld  
    

    7.絶対パス登録MySQL
    $ /data/app/mysql8018/bin/mysql -S /data/socket/mysql3326.sock
    

    これで、同じサーバに複数バージョンのMySQLマルチインスタンスを配備できますが、コマンド検証を使用します.
    [root@db01 ~]# netstat -lntup|grep mysqld
    tcp6       0      0 :::3326    :::*        LISTEN      2686/mysqld         
    tcp6       0      0 :::33060   :::*        LISTEN      2686/mysqld         
    tcp6       0      0 :::3307    :::*        LISTEN      2093/mysqld         
    tcp6       0      0 :::3308    :::*        LISTEN      2127/mysqld         
    tcp6       0      0 :::3309    :::*        LISTEN      2161/mysqld         
    tcp6       0      0 :::3316    :::*        LISTEN      2516/mysqld 
    

    私のブログ:https://www.pingface.com/2020/04/23/mysqlmulti.html