首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

CentOS/RHEL 安裝 MySQL 服務器完整指南:配置、啟動、字符集、安全加固

     編輯:MySQL 綜合教學

安裝方式對比

  • 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%';。

服務管理命令

安全加固腳本


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 或調整策略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
操作Systemd (CentOS 7+)SysVinit (CentOS 6)
啟動systemctl start mysqldservice mysqld start
停止systemctl stop mysqldservice mysqld stop
重啟systemctl restart mysqldservice mysqld restart
狀態systemctl status mysqldservice mysqld status