安裝方式對比
- YUM/RPM(推薦):依賴自動解決、服務整合、升級簡單。
- 源碼編譯:定製化強,維護成本高,非必要不建議。
YUM 安裝步驟 (CentOS 7/RHEL 7 為例)
# 1. 配置官方 YUM 倉庫
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
# 或 5.7 倉庫
# 2. 安裝
yum install -y mysql-community-server
# 3. 啟動並設開機自啟
systemctl start mysqld
systemctl enable mysqld
初始化與臨時密碼 (5.7+)
# 首次啟動會生成臨時 root 密碼
grep 'temporary password' /var/log/mysqld.log
# 登入修改密碼
mysql -uroot -p'臨時密碼'
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPwd@123';
核心配置 /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 字符集(5.7+)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
修改後 systemctl restart mysqld 生效,驗證 SHOW VARIABLES LIKE 'character%';。
服務管理命令
| 操作 | Systemd (CentOS 7+) | SysVinit (CentOS 6) |
| 啟動 | systemctl start mysqld | service mysqld start |
| 停止 | systemctl stop mysqld | service mysqld stop |
| 重啟 | systemctl restart mysqld | service mysqld restart |
| 狀態 | systemctl status mysqld | service mysqld status |
安全加固腳本
mysql_secure_installation
# 交互式:設置 root 密碼、移除匿名用戶、禁止 root 遠程登入、刪除 test 庫、刷新權限
驗證字符集生效
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb4 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
常見坑點
- Socket 路徑不一致:客戶端預設
/tmp/mysql.sock,服務端 /var/lib/mysql/mysql.sock → 連接失敗。解決:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 或客戶端指定 --socket。
- 防火牆:
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload。
- SELinux:若阻擋,設置
setsebool -P mysql_connect_any 1 或調整策略。
- 上一篇文章: MySQL 密碼管理實戰:PASSWORD() 函數驗證與用戶表結構解析
- 下一篇文章: MySQL 外鍵關聯深度實踐:ON UPDATE CASCADE 配置與避坑指南
Copyright ©
程式碼之家 All Rights Reserved