CentOS7.7バイナリ導入MySQLマルチバージョンマルチインスタンス実戦
8375 ワード
第一章需要説明は、 を導入する.導入 第二章環境準備
1.仮想マシン環境
2.仮想マシンの最適化
3.環境の整理
①インストールしたmysqlをアンインストールする
②mysqlのプロファイルを削除する
③MariaDBのファイルを削除する
④myを削除する.cnf
⑤ポートが占有されていないかチェックする
4.パッケージの準備
MySQL公式ダウンロードアドレスバイナリパッケージ略をダウンロードします.
5.ディレクトリの準備
第三章MySQL 5の配置7マルチインスタンス
1.パッケージを解凍してソフト接続を作成する
2.
3.
4.初期化
5.systemd起動スクリプトの作成
6.マルチインスタンスの起動
7.アブソパス登録
第四章MySQL 5の配置6単一インスタンス
1.パッケージを解凍してソフト接続を作成する
2.
3.mysql傀儡ユーザーを作成し、許可する
4.初期化
5.systemd起動スクリプトの作成
6.起動例
7.絶対パス登録
第五章MySQL 8の配置0単一インスタンス
1.パッケージを解凍してソフト接続を作成する
2.
3.mysql傀儡ユーザーを作成し、許可する
4.依存関係のインストールと初期化
5.systemd起動スクリプトの作成
6.起動例
7.絶対パス登録
これで、同じサーバに複数バージョンのMySQLマルチインスタンスを配備できますが、コマンド検証を使用します.
私のブログ:https://www.pingface.com/2020/04/23/mysqlmulti.html
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