首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux MySQL 快速部署指南:Fedora 套件管理實戰與 SELinux/防火牆排錯

     編輯:MySQL 資料庫相關知識

為什麼推薦 Fedora 套件安裝?

二進制手動部署易踩坑(路徑、權限、啟動腳本),dnf/yum install mysql-server 自動處理依賴、目錄結構、systemd 服務、logrotate、預設配置,適合學習與生產快速啟動。

三大常見問題與解決方案

問題 1:Root 密碼遺失 / Access Denied (Error 1045)

# 1. 停止服務
systemctl stop mysqld

# 2. 跳過授權表啟動
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# 3. 免密登入重設
mysql -u root mysql
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
QUIT

# 4. 正常重啟
systemctl restart mysqld
mysql -uroot -p'newpass'

問題 2:mysql 系統庫損壞/遺失

前提:擁有一台健康的同版本實例

# 源端導出
mysqldump --opt mysql > mysql.sql
scp mysql.sql 目標主機:

# 目標端還原
mysql
CREATE DATABASE mysql;
USE mysql;
SOURCE /path/to/mysql.sql;

問題 3:SELinux 阻擋 mysqld 存取 / 防火牆阻擋 3306

  1. 防火牆放行 3306:
    firewall-cmd --permanent --add-port=3306/tcp
    firewall-cmd --reload
  2. SELinux 文件上下文修正:
    # 查看被阻擋上下文
    ausearch -m avc -ts recent | grep mysqld
    
    # 修正 mysqld 執行檔上下文(針對自定義路徑)
    chcon -t mysqld_exec_t /usr/libexec/mysqld
    # 或恢復預設
    restorecon -v /usr/libexec/mysqld
    
    # 重啟驗證
    systemctl start mysqld

Fedora MySQL 服務管理速查

操作指令
啟動systemctl start mysqld
停止systemctl stop mysqld
重啟systemctl restart mysqld
開機自啟systemctl enable mysqld
狀態查看systemctl status mysqld
日誌查看journalctl -u mysqld -f

安全初始化腳本

mysql_secure_installation
# 互動式:設 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重新載入權限

避坑提醒

  • Fedora 33+ 可能預設安裝 MariaDB(mysql-server 為虛擬包),確認 rpm -qi mariadb-server
  • 資料目錄預設 /var/lib/mysql,掛載獨立磁碟請修改 /etc/my.cnf.d/mariadb-server.cnf 的 datadir
  • SELinux 啟用時,**務必用 semanage fcontext + restorecon 永久修正**,單用 chcon 重啟後失效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved