首頁  >  文章  >  資料庫  >  如何在同一台伺服器上安裝多個MySQL實例

如何在同一台伺服器上安裝多個MySQL實例

PHPz
PHPz原創
2023-04-20 13:47:131817瀏覽

MySQL是一種開源的關聯式資料庫管理系統,被廣泛應用於各種應用程式的資料管理。在實際使用過程中,有時需要同時安裝多個MySQL實例來支援不同的應用程式或場景,本文將介紹如何在同一台伺服器上安裝多個MySQL實例。

一、安裝前的準備工作

在進行MySQL多實例的安裝前,需要進行以下準備工作:

  1. 準備多個MySQL的安裝包,可以從MySQL官網下載適合自己環境的版本進行下載:https://dev.mysql.com/downloads/
  2. 準備多個MySQL資料目錄,可以透過建立不同的目錄來支援不同的MySQL實例,例如:/data/mysql1、/data/mysql2 等。
  3. 針對每個MySQL實例,配置一個獨立的MySQL用戶,該用戶擁有對應的MySQL安裝路徑和資料目錄的權限。

二、基於二進位套件安裝多個MySQL實例

以下是基於二進位套件安裝多個MySQL實例的操作步驟:

  1. 解壓縮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

    初始化數據目錄
每個MySQL實例都需要獨立的資料目錄,需要使用mysql_install_db指令初始化。以下是初始化mysql1和mysql2實例的指令:

$ cd mysql1

$ 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

    #安裝MySQL服務
對於每個MySQL實例,需要使用mysqld_safe指令安裝MySQL服務,以下是安裝mysql1和mysql2實例的指令:

$$ cp support-files /mysql.server /etc/init.d/mysql1

$ 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

    #設定MySQL實例
對於每個MySQL實例,需要獨立的設定檔my.cnf,可以在MySQL的安裝目錄下建立一個my.cnf文件,以下是my.cnf檔案的範例:

[mysqld]

datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error =/data/mysql1/mysql.err
pid-file=/share/tmp/mysql1.pid

以下是mysql2實例的配置

[mysqld2]

datadir= /data/mysql2
socket=/share/tmp/mysql2.sock
port = 3307
user=mysql
log-error=/data/mysql2/mysql.err
pid-file =/share/tmp/mysql2.pid

    設定MySQL使用者
使用下列指令建立MySQL使用者並授予對應的目錄權限:

$ useradd -r -g mysql -s /bin/false mysql1

$ 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實例

  1. 準備Docker環境

需要先在伺服器上安裝Docker環境,並拉取MySQL的Docker映像,以下是拉取最新版本MySQL映像的指令:

$ docker pull mysql/mysql-server:latest

  1. 啟動MySQL容器

可以透過啟動多個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

  1. #配置MySQL實例

可以在不同的資料卷裡分別建立不同的設定檔my.cnf,然後分別掛載到不同的容器中。以下是my.cnf的範例:

以下是mysql1實例的配置

[mysqld]
datadir = /var/lib/mysql
socket = /var/run/ mysqld/mysqld.sock

注意:這個設定只對MySQL 5.7或先前版本生效

symbolic-links = 0

自訂的MySQL設定

#[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

以下是mysql2實例的設定

[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0

自訂的MySQL配置

[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

  1. #使用多個MySQL實例

在配置多個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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn