基於RPM的linux發布版安裝mysql的推薦方法是使用oracle提供的RPM軟件包。可以從兩個來源獲取他們。
MySQL Yum庫 MySQL SLES庫
https://dev.mysql.com/downloads/mysql/
注意:其他供應商也提供mysql的RPM發布版。它們在功能、能力和設置等方面可能與oracle創建的RPM不同,本文中的安裝說明不一定適用於它們。
MYSQL RPM包
Mysql免費版RPM 包
包名稱
| 摘要 |
mysql-community-server | 數據庫服務器及相關工具 |
mysql-community-client | MySQL客戶端應用和工具 |
mysql-community-common | 服務器和客戶端庫的普通文件 |
mysql-community-devel | 開發MySQL數據庫客戶端應用程序的頭文件和庫 |
mysql-community-libs | MySQL數據庫客戶端應用程序的共享庫 |
mysql-community-libs-compat | 用於以前安裝的MySQL的共享兼容性庫 |
mysql-community-embedded | MySQL嵌入式庫 |
mysql-community-embedded-devel | 嵌入式開發MySQL數據庫客戶端應用程序的頭文件和庫 |
mysql-community-test | MySQL服務器的測試套件 |
Mysql企業版RPM 包
Package Name | Summary |
mysql-commercial-backup | MySQL Enterprise Backup (added in 8.0.11) |
mysql-commercial-client | MySQL client applications and tools |
mysql-commercial-common | Common files for server and client libraries |
mysql-commercial-devel | Development header files and libraries for MySQL database client applications |
mysql-commercial-embedded-compat | MySQL server as an embedded library with compatibility for applications using version 18 of the library |
mysql-commercial-libs | Shared libraries for MySQL database client applications |
mysql-commercial-libs-compat | Shared compatibility libraries for previous MySQL installations; the version of the libraries matches the version of the libraries installed by default by the distribution you are using |
mysql-commercial-server | Database server and related tools |
mysql-commercial-test | Test suite for the MySQL server |
RPM包的命名符合以下語法規則:
packagename-version-distribution-arch.rpm
distribution 和arch 表示RPM包針對linux發布版和處理器類型。有關distribution 標識的列表,請參見下表:
Distribution Value | Intended Use |
el6, el7, and el8 | Red Hat Enterprise Linux/Oracle Linux/CentOS 6, 7, and 8 |
fc29 fc30 | Fedora 29 and 30 |
sles12 | SUSE Linux Enterprise Server 12 |
使用以下命令查看rpm包中的所有文件(例如,mysql-community-server):
rpm -qpl mysql-community-server-version-distribution-arch.rpm
一些包之間存在依賴關系。如計劃安裝多個軟件包,則下載RPM的tar文件就可以了,它包含上面列出的所有rpm軟件包。
在大多數情況下,需要安裝mysql-community-server、mysql-community-client、mysql-community-libs、mysql-community-common和mysql-community-libs-compat包來獲得一個功能正常的標准mysql安裝。
要執行這種標准的基本安裝,則轉到包含所有這些包的目錄下(最好沒有其他名稱相似的rpm包),並執行以下命令:
yum install mysql-community-{server,client,common,libs}-*
在SLES平台用zypper替換yum,在Fedora用dnf替換fedora。
使用yum這樣的高級包管理工具來安裝包更便捷,但也可以用rpm -uvh命令替換yum安裝命令;因為安裝過程可能會遇到潛在的依賴性問題,使用rpm -uvh反而會使安裝過程更容易失敗。
如果僅安裝客戶端程序,就可以在安裝的軟件包列表中略過MySQL-community-server;執行以下命令:
yum install mysql-community-{client,common,libs}-*
在SLES平台用zypper替換yum,在Fedora用dnf替換fedora。
使用RPM包默認安裝mysql會在系統目錄下創建文件和資源,如下表所示:
Files or Resources | Location |
Client programs and scripts | /usr/bin |
mysqld server | /usr/sbin |
Configuration file | /etc/my.cnf |
Data directory | /var/lib/mysql |
Error log file | 對於RHEL, Oracle Linux, CentOS or Fedora 平台:/var/log/mysqld.log 對於SLES: /var/log/mysql/mysqld.log |
Value of secure_file_priv | /var/lib/mysql-files |
System V init script
| 對於RHEL, Oracle Linux, CentOS or Fedora 平台:/etc/init.d/mysqld 對於 SLES: /etc/init.d/mysql |
Systemd service | 對於 RHEL, Oracle Linux, CentOS or Fedora 平台: mysqld 對 SLES: mysql |
Pid file | /var/run/mysql/mysqld.pid |
Socket | /var/lib/mysql/mysql.sock |
Keyring directory | /var/lib/mysql-keyring |
Unix manual pages | /usr/share/man |
Include (header) files | /usr/include/mysql |
Libraries | /usr/lib/mysql |
Miscellaneous support files (for example, error messages, and character set files) | /usr/share/mysql |
安裝還會在系統上創建一個名為mysql的用戶和一個名為mysql的組。
mysql不會在安裝過程結束時自動啟動。對於Red Hat Enterprise Linux、oracle linux、centos和fedora系統,使用以下命令啟動mysql:
systemctl start mysqld
對於SLES系統,命令是相同的,但是服務名稱不同:
systemctl start mysql
如果操作系統啟用了systemd,則應使用標准systemctl(相反的,使用service)命令(如停止、啟動、狀態和重新啟動)來管理mysqlserver服務。默認情況下,mysql服務是開機啟動的。
在升級時,如果MYSQL server正在運行,那麼MYSQL server會立刻停止運行,升級,啟動。
一個例外是:如果版本在升級過程中也發生了變化(比如社區升級到商業版,反之亦然),那麼mysql服務器就不會重新啟動。
在服務器初始啟動時,假設服務器的數據目錄為空,會發生以下情況:
初次啟動mysql(MySQL 8.0以及更高版本) 服務端後,服務端發生如下事件:
服務端初始化。SSL certificate and key文件在data目錄生成。 validate_password 插件 被安裝以及生效。超級用戶 'root'@'localhost' 以及密碼被生成,密碼存在 error log file,為了找到密碼,執行以下命令
grep 'temporary password' /var/log/mysqld.log
在SLES平台執行以下命令:
grep 'temporary password' /var/log/mysql/mysqld.log
用自動產生的密碼登錄mysql後,應盡快修改密碼。
注意:默認安裝的validate_password要求密碼必須包含:大,小寫字符,特殊字符,數字。密碼總長度不低於8個。
如果安裝過程中出現問題,你可以在錯誤日志文件/var/log/mysqld.log(SLES平台/var/log/mysql/mysqld.log)中找到調試信息。
對於某些linux發行版,可能有必要增加mysqld可用文件描述符的數量限制。
從多個mysql版本安裝客戶端庫
例如,希望與鏈接到以前庫的舊應用程序保持兼容性的情況下,可以安裝多個客戶端庫版本。要安裝舊的客戶端庫,使用rpm的- oldpackage選項。例如, 安裝mysql-community-libs-5.5在el6系統上,該系統已經從mysql 8.0安裝了libmysqlclient.21,請使用如下命令:
rpm oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
調試包
MYSQL server的RPM包包含一個和調試包一起編譯的特殊變體。當server運行時,變體執行調試和內存分配檢查,並生成trace文件。要使用調試版本,使用/usr/sbin/mysqld-debug啟動mysql,而不是將其作為服務或/usr/sbin/MySQL啟動。
注意:在mysql 8.0.4中,調試版本的默認插件目錄從/usr/lib64/mysql/plugin更改為/usr/lib64/mysql/plugin/debug。以前,需要將plugin_dir更改為/usr/lib64/mysql/plugin/debug以用於調試版本。