YUM 管理軟體依賴、版本鎖定與升級極為方便。本文記錄從配置官方/第三方源、安裝客戶端與服務端、啟動與開機自啟、密碼管理、遠程授權到重要目錄查閱的標準化流程。
# 檢查已安裝
yum list installed mysql*
rpm -qa | grep mysql
# 查看可用包
yum list mysql*
# 推薦:使用 MySQL 官方 YUM Repository(支援 5.7/8.0 版本選擇)
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum localinstall -y mysql80-community-release-el7-3.noarch.rpm
# 或啟用 5.7:yum-config-manager --enable mysql57-community
yum install -y mysql mysql-server mysql-devel
mysql:客戶端工具(mysql, mysqladmin, mysqldump 等)。mysql-server:服務端核心(mysqld、systemd unit)。mysql-devel:開發頭文件與庫(編譯驅動、插件需用)。systemctl start mysqld # 啟動
systemctl stop mysqld # 停止
systemctl enable mysqld # 開機自啟
systemctl status mysqld # 狀態檢查
舊版 service mysqld start 兼容保留。
編輯 /etc/my.cnf,在 [mysqld] 區段加入:
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[client]
default-character-set=utf8mb4
重啟服務生效:systemctl restart mysqld。
# 5.7/8.0 首次啟動會生成臨時密碼於 /var/log/mysqld.log
grep 'temporary password' /var/log/mysqld.log
# 登錄並修改
mysql -uroot -p'臨時密碼' -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';"
# 或執行安全腳本(建議)
mysql_secure_installation
systemctl stop mysqld
mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
systemctl restart mysqld
mysql -uroot -p -e "
CREATE USER 'root'@'%' IDENTIFIED BY 'NewPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;"
# 防火牆放行 3306
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
| 用途 | 路徑 |
|---|---|
| 資料目錄 | /var/lib/mysql/ |
| 配置檔 | /etc/my.cnf、/etc/my.cnf.d/ |
| 二進制/腳本 | /usr/bin/(mysql, mysqldump, mysqladmin...) |
| 啟動腳本 | /usr/lib/systemd/system/mysqld.service |
| 錯誤日誌 | /var/log/mysqld.log |
| Socket | /var/lib/mysql/mysql.sock |
mysql -uroot -p -e "SHOW VARIABLES LIKE 'character_set%'; SELECT USER(), VERSION();"
遵循本流程,即可在 RHEL 系 Linux 上獲得一套生產就緒的 MySQL 實例。