MySQL是一種開源的關聯式資料庫管理系統,被廣泛應用於各種應用程式的資料管理。在實際使用過程中,有時需要同時安裝多個MySQL實例來支援不同的應用程式或場景,本文將介紹如何在同一台伺服器上安裝多個MySQL實例。
一、安裝前的準備工作
在進行MySQL多實例的安裝前,需要進行以下準備工作:
二、基於二進位套件安裝多個MySQL實例
以下是基於二進位套件安裝多個MySQL實例的操作步驟:
將多個MySQL安裝套件解壓縮後,可以將其重新命名為不同的名稱以方便區分,例如:mysql1、mysql2等。
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1##$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir=/data /mysql1
$ cd ../mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2
$ cp support-files/mysql.server /etc/init.d/mysql2
$ chmod x /etc/init.d/mysql1
$ chmod x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start
datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error =/data/mysql1/mysql.err
pid-file=/share/tmp/mysql1.pid
datadir= /data/mysql2
socket=/share/tmp/mysql2.sock
port = 3307
user=mysql
log-error=/data/mysql2/mysql.err
pid-file =/share/tmp/mysql2.pid
$ useradd -r -g mysql -s /bin/false mysql2
$ chown -R mysql:mysql /data/mysql1
$ chown -
$ chown - R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql:mysql /share/opt/mysql2
三、基於Docker容器安裝多個MySQL實例
需要先在伺服器上安裝Docker環境,並拉取MySQL的Docker映像,以下是拉取最新版本MySQL映像的指令:
$ docker pull mysql/mysql-server:latest
可以透過啟動多個MySQL容器來實現多實例的需求,可以透過指定不同的連接埠、資料磁碟區和設定檔來區分不同的實例。以下是啟動兩個不同的MySQL實例的範例指令:
$ docker run --name=mysql1 -d \
-e MYSQL_ROOT_PASSWORD=your_password \
-p 3306:3306 \
-v /data/mysql1:/var/lib/mysql \
-v /share/opt/mysql1:/etc/mysql \
mysql/mysql-server:latest
$ docker run -- name=mysql2 -d \
-e MYSQL_ROOT_PASSWORD=your_password \
-p 3307:3306 \
-v /data/mysql2:/var/lib/mysql \
-v /share/opt /mysql2:/etc/mysql \
mysql/mysql-server:latest
可以在不同的資料卷裡分別建立不同的設定檔my.cnf,然後分別掛載到不同的容器中。以下是my.cnf的範例:
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/ mysqld/mysqld.sock
symbolic-links = 0
#[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
#user = mysql
log-error = / var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
在配置多個MySQL實例後,可以透過連接到對應的連接埠、使用對應的資料庫實例名稱和設定對應的使用者來使用多個MySQL實例:
mysql -h localhost -u username1 -p -P 3306 -D database1
mysql -h localhost -u username2 -p -P 3307 -D database2
#本文介紹如何在同一台伺服器上安裝多個MySQL實例,包括基於二進位套件安裝和基於Docker容器安裝兩種方式。透過合理使用多個MySQL實例,可以更好地支援不同的應用程式和場景,提高資料庫的效能和可靠性。
以上是如何在同一台伺服器上安裝多個MySQL實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!