對于一臺機器上需要安裝多個MySQL服務的情況,可以通過多配置文件實現。這樣可以避免不同版本或不同實例之間的配置沖突,并且方便管理。
下面我們以在CentOS 7上安裝兩個MySQL實例為例進行說明。
1. 下載并安裝MySQL
# 下載MySQL官方的yum repo配置文件 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # 安裝配置文件 sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm # 安裝MySQL-server,創建的第一個實例使用默認配置 sudo yum install mysql-server # 安裝MySQL服務,創建的第二個實例使用自定義的配置 sudo yum install mysql-community-server
2. 復制配置文件
默認情況下MySQL的配置文件為/etc/my.cnf,如果需要多個實例,則需要復制一份作為新的配置文件,并修改相關配置。
# 復制默認配置文件,作為第二個實例的配置文件 sudo cp /etc/my.cnf /etc/my2.cnf # 修改第二個實例的端口號為3307 sudo sed -i "s/\/&\nport=3307/" /etc/my2.cnf
3. 修改端口號
為了讓第一個實例和第二個實例使用不同的端口號,我們需要修改systemd服務配置。
# 復制默認的服務配置文件,以創建新的服務 sudo cp /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld2.service # 修改新服務使用的端口號為3307 sudo sed -i "s/\/&\n--defaults-file=\/etc\/my2.cnf/" /usr/lib/systemd/system/mysqld2.service # 重新加載systemd配置 sudo systemctl daemon-reload
4. 啟動服務
現在,我們可以啟動兩個MySQL實例了。
# 啟動第一個服務(使用默認配置) sudo systemctl start mysqld.service # 啟動第二個服務(使用自定義配置) sudo systemctl start mysqld2.service
這樣,我們就成功安裝了兩個MySQL實例,并且使用了不同的配置文件和端口號。