首頁 >資料庫 >mysql教程 >怎麼在同一台伺服器上安裝多個MySQL

怎麼在同一台伺服器上安裝多個MySQL

WBOY
WBOY轉載
2023-05-29 12:10:272744瀏覽

一、安裝前的準備工作

在進行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

  1. 初始化資料目錄

使用mysql_install_db指令初始化之後,每個MySQL實例必須擁有自己獨立的資料目錄。以下是初始化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

  1. #安裝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

  1. 設定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

  1. 配置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 -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的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除