在基於 RPM 的 Linux 發行版上安裝 MySQL 的建議方式是使用 Oracle 提供的 RPM 套件。有兩個來源可以取得它們,用於 MySQL 社群版
從 MySQL 軟體儲存庫
MySQL Yum 儲存庫(詳細資訊請參閱第 2.5.1 節,〈使用 MySQL Yum 儲存庫在 Linux 上安裝 MySQL〉)。
MySQL SLES 儲存庫(詳細資訊請參閱第 2.5.3 節,〈使用 MySQL SLES 儲存庫〉)。
從 下載 MySQL 社群伺服器頁面,位於MySQL 開發人員專區。
MySQL 的 RPM 發行版也由其他供應商提供。請注意,它們在功能、效能和慣例(包括通訊設定)方面可能與 Oracle 建置的版本不同,並且本手冊中的安裝指示不一定適用於它們。請改為參考供應商的指示。
MySQL RPM 套件
表 2.8 MySQL 社群版的 RPM 套件
套件名稱 | 摘要 |
---|---|
mysql-community-client |
MySQL 用戶端應用程式和工具 |
mysql-community-client-plugins |
MySQL 用戶端應用程式的共用外掛程式 |
mysql-community-common |
伺服器和用戶端程式庫的共用檔案 |
mysql-community-devel |
MySQL 資料庫用戶端應用程式的開發標頭檔和程式庫 |
mysql-community-embedded-compat |
作為嵌入式程式庫的 MySQL 伺服器,與使用程式庫版本 18 的應用程式相容 |
mysql-community-icu-data-files |
MySQL 正則表達式所需的 ICU 資料檔案的 MySQL 套件 |
mysql-community-libs |
MySQL 資料庫用戶端應用程式的共用程式庫 |
mysql-community-libs-compat |
先前 MySQL 安裝的共用相容性程式庫;僅在平台支援先前 MySQL 版本時存在 |
mysql-community-server |
資料庫伺服器和相關工具 |
mysql-community-server-debug |
偵錯伺服器和外掛程式二進位檔 |
mysql-community-test |
MySQL 伺服器的測試套件 |
mysql-community |
原始碼 RPM 看起來與 mysql-community-8.4.0-1.el7.src.rpm 類似,具體取決於選取的作業系統 |
其他 *debuginfo* RPM | 有數個 debuginfo 套件:mysql-community-client-debuginfo、mysql-community-libs-debuginfo、mysql-community-server-debug-debuginfo、mysql-community-server-debuginfo 和 mysql-community-test-debuginfo。 |
表 2.9 MySQL 企業版的 RPM 套件
套件名稱 | 摘要 |
---|---|
mysql-commercial-backup |
MySQL Enterprise Backup |
mysql-commercial-client |
MySQL 用戶端應用程式和工具 |
mysql-commercial-client-plugins |
MySQL 用戶端應用程式的共用外掛程式 |
mysql-commercial-common |
伺服器和用戶端程式庫的共用檔案 |
mysql-commercial-devel |
MySQL 資料庫用戶端應用程式的開發標頭檔和程式庫 |
mysql-commercial-embedded-compat |
作為嵌入式程式庫的 MySQL 伺服器,與使用程式庫版本 18 的應用程式相容 |
mysql-commercial-icu-data-files |
MySQL 正則表達式所需的 ICU 資料檔案的 MySQL 套件 |
mysql-commercial-libs |
MySQL 資料庫用戶端應用程式的共用程式庫 |
mysql-commercial-libs-compat |
先前 MySQL 安裝的共用相容性程式庫;僅在平台支援先前 MySQL 版本時存在。程式庫的版本與您正在使用的發行版預設安裝的程式庫版本相符。 |
mysql-commercial-server |
資料庫伺服器和相關工具 |
mysql-commercial-test |
MySQL 伺服器的測試套件 |
其他 *debuginfo* RPM | 有數個 debuginfo 套件:mysql-commercial-client-debuginfo、mysql-commercial-libs-debuginfo、mysql-commercial-server-debug-debuginfo、mysql-commercial-server-debuginfo 和 mysql-commercial-test-debuginfo。 |
RPM 的完整名稱具有下列語法
packagename-version-distribution-arch.rpm
distribution
和 arch
值表示建置套件的 Linux 發行版和處理器類型。請參閱下表以取得發行版識別碼的清單
表 2.10 MySQL Linux RPM 套件發行版識別碼
發行版值 | 預期用途 |
---|---|
el{version} ,其中 {version} 是主要企業 Linux 版本,例如 el8 |
基於 EL6 (8.0)、EL7、EL8 和 EL9 的平台(例如,Oracle Linux、Red Hat Enterprise Linux 和 CentOS 的對應版本) |
fc{version} ,其中 {version} 是主要 Fedora 版本,例如 fc37 |
Fedora 38、39 和 40 |
sl5 |
SUSE Linux Enterprise Server 15 |
若要查看 RPM 套件中的所有檔案(例如,mysql-community-server
),請使用下列命令
$> rpm -qpl mysql-community-server-version-distribution-arch.rpm
本節其餘部分的討論僅適用於直接從 Oracle 下載 RPM 套件,而不是透過 MySQL 儲存庫進行的安裝過程。
某些套件之間存在相依性關係。如果您計劃安裝許多套件,您可能需要下載 RPM 組合 tar 檔案,其中包含上面列出的所有 RPM 套件,這樣您就不需要單獨下載它們。
在大多數情況下,您需要安裝 mysql-community-server
、mysql-community-client
、mysql-community-client-plugins
、mysql-community-libs
、mysql-community-icu-data-files
、mysql-community-common
和 mysql-community-libs-compat
這些套件,才能獲得功能完整的標準 MySQL 安裝。要執行此類標準、基本的安裝,請前往包含所有這些套件的資料夾(最好不要有其他名稱相似的 RPM 套件),然後執行以下命令
$> sudo yum install mysql-community-{server,client,client-plugins,icu-data-files,common,libs}-*
針對 SLES,將 yum 替換為 zypper;針對 Fedora,則替換為 dnf。
雖然使用像 yum 這樣的高階套件管理工具來安裝套件是更好的選擇,但偏好直接使用 rpm 命令的使用者,可以將 yum install 命令替換為 rpm -Uvh 命令;然而,使用 rpm -Uvh 會使安裝過程更容易失敗,因為安裝過程可能會遇到潛在的依賴性問題。
若僅安裝用戶端程式,您可以在要安裝的套件列表中跳過 mysql-community-server
;執行以下命令
$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*
針對 SLES,將 yum 替換為 zypper;針對 Fedora,則替換為 dnf。
使用 RPM 套件標準安裝 MySQL 會在系統目錄下建立檔案和資源,如下表所示。
表 2.11:MySQL Developer Zone 中適用於 Linux RPM 套件的 MySQL 安裝佈局
檔案或資源 | 位置 |
---|---|
用戶端程式和腳本 | /usr/bin |
mysqld 伺服器 | /usr/sbin |
組態檔 | /etc/my.cnf |
資料目錄 | /var/lib/mysql |
錯誤日誌檔 | 針對 RHEL、Oracle Linux、CentOS 或 Fedora 平台: 針對 SLES: |
secure_file_priv 的值 |
/var/lib/mysql-files |
System V init 腳本 | 針對 RHEL、Oracle Linux、CentOS 或 Fedora 平台: 針對 SLES: |
Systemd 服務 | 針對 RHEL、Oracle Linux、CentOS 或 Fedora 平台: 針對 SLES: |
Pid 檔 | /var/run/mysql/mysqld.pid |
Socket | /var/lib/mysql/mysql.sock |
金鑰環目錄 | /var/lib/mysql-keyring |
Unix 手冊頁 | /usr/share/man |
包含 (標頭) 檔 | /usr/include/mysql |
程式庫 | /usr/lib/mysql |
其他支援檔(例如,錯誤訊息和字元集檔) | /usr/share/mysql |
安裝也會在系統上建立一個名為 mysql
的使用者和一個名為 mysql
的群組。
mysql
使用者是使用 useradd 命令的-r
和-s /bin/false
選項建立的,因此它沒有登入您伺服器主機的權限(詳細資訊請參閱 建立 mysql 使用者和群組)。若要在您的作業系統上切換到mysql
使用者,請為 su 命令使用--shell=/bin/bash
選項$> su - mysql --shell=/bin/bash
使用較舊套件安裝先前版本的 MySQL 可能會建立一個名為
/usr/my.cnf
的組態檔。強烈建議您檢查該檔案的內容,並將所需的設定移至/etc/my.cnf
檔案中,然後移除/usr/my.cnf
。
MySQL 不會在安裝過程結束時自動啟動。針對 Red Hat Enterprise Linux、Oracle Linux、CentOS 和 Fedora 系統,請使用以下命令啟動 MySQL
$> systemctl start mysqld
針對 SLES 系統,命令相同,但服務名稱不同
$> systemctl start mysql
如果作業系統已啟用 systemd,則應使用標準的 systemctl(或者,也可以反轉參數使用 service)命令(例如 stop、start、status 和 restart)來管理 MySQL 伺服器服務。預設情況下會啟用 mysqld
服務,並在系統重新啟動時啟動。請注意,在 systemd 平台上,某些事情的運作方式可能有所不同:例如,變更資料目錄的位置可能會導致問題。如需其他資訊,請參閱 第 2.5.9 節「使用 systemd 管理 MySQL 伺服器」。
在使用 RPM 和 DEB 套件進行升級安裝期間,如果升級時 MySQL 伺服器正在執行,則 MySQL 伺服器會停止、執行升級,然後重新啟動 MySQL 伺服器。但有一例外:如果在升級期間版本也發生變更(例如,從社群版變更為商業版,反之亦然),則不會重新啟動 MySQL 伺服器。
在伺服器初次啟動時,如果伺服器的資料目錄是空的,則會發生以下情況
初始化伺服器。
在資料目錄中產生 SSL 憑證和金鑰檔。
安裝並啟用
validate_password
。建立超級使用者帳戶
'root'@'localhost'
。設定超級使用者的密碼並將其儲存在錯誤日誌檔中。若要顯示密碼,請針對 RHEL、Oracle Linux、CentOS 和 Fedora 系統使用以下命令$> sudo grep 'temporary password' /var/log/mysqld.log
針對 SLES 系統,請使用以下命令
$> sudo grep 'temporary password' /var/log/mysql/mysqld.log
下一步是使用產生的臨時密碼登入,並為超級使用者帳戶設定自訂密碼
$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
預設情況下會安裝 validate_password
。validate_password
實作的預設密碼原則要求密碼至少包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元,且密碼總長度至少為 8 個字元。
如果在安裝期間發生錯誤,您可能會在錯誤日誌檔 /var/log/mysqld.log
中找到偵錯資訊。
對於某些 Linux 發行版本,可能需要增加 mysqld 可用的檔案描述元數量上限。請參閱 第 B.3.2.16 節「找不到檔案及類似錯誤」
從多個 MySQL 版本安裝用戶端程式庫。您可以安裝多個用戶端程式庫版本,例如,在您想要維護與連結到先前程式庫的較舊應用程式相容性的情況下。若要安裝較舊的用戶端程式庫,請搭配 rpm 使用 --oldpackage
選項。例如,若要在具有 MySQL 8.0 的 libmysqlclient.21
的 EL6 系統上安裝 mysql-community-libs-5.5
,請使用類似以下的命令
$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
偵錯套件。伺服器 RPM 套件中已包含使用 偵錯套件編譯的特殊 MySQL 伺服器變體。它會執行偵錯和記憶體配置檢查,並在伺服器執行時產生追蹤檔。若要使用該偵錯版本,請使用 /usr/sbin/mysqld-debug
啟動 MySQL,而不是將其作為服務或使用 /usr/sbin/mysqld
啟動。如需您可以使用的偵錯選項,請參閱 第 7.9.4 節「DBUG 套件」。
預設外掛程式目錄是 /usr/lib64/mysql/plugin/debug
,並且可以使用 plugin_dir
來設定。
從來源 SRPM 重建 RPM。MySQL 的原始碼 SRPM 套件可供下載。它們可以按原樣使用,以使用標準的 rpmbuild 工具鏈重建 MySQL RPM。