共計 3246 個字符,預計需要花費 9 分鐘才能閱讀完成。
本文丸趣 TV 小編為大家詳細介紹“怎么在同一臺服務器上安裝多個 MySQL”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么在同一臺服務器上安裝多個 MySQL”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。
一、安裝前的準備工作
在進行 MySQL 多實例的安裝前,需要進行以下準備工作:
準備多個 MySQL 的安裝包,可以從 MySQL 官網下載適合自己環境的版本進行下載:https://dev.mysql.com/downloads/
準備多個 MySQL 數據目錄,可以通過創建不同的目錄來支持不同的 MySQL 實例,例如:/data/mysql1、/data/mysql2 等。
針對每個 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
初始化數據目錄
每個 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 -R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql:mysql /share/opt/mysql2
三、基于 Docker 容器安裝多個 MySQL 實例
準備 Docker 環境
需要先在服務器上安裝 Docker 環境,并拉取 MySQL 的 Docker 鏡像,以下是拉取最新版本 MySQL 鏡像的命令:
$ docker pull mysql/mysql-server:latest
啟動 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
配置 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
使用多個 MySQL 實例
在配置完多個 MySQL 實例后,可以通過連接到對應的端口、使用對應的數據庫實例名和配置對應的用戶來使用多個 MySQL 實例:
mysql -h localhost -u username1 -p -P 3306 -D database1
mysql -h localhost -u username2 -p -P 3307 -D database2
讀到這里,這篇“怎么在同一臺服務器上安裝多個 MySQL”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!