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

MySQL 啟動報警告:Can't create test file / lower-test 解決方案

     編輯:MySQL 綜合教學

錯誤訊息:


[Warning] Can't create test file xxx.lower-test
[ERROR] Aborting

原因:SELinux 或 AppArmor 限制 mysqld 存取非預設資料目錄。

方案一:SELinux (RHEL/CentOS/Fedora)


# 暫時關閉 (驗證用)
setenforce 0

# 永久關閉
vi /etc/selinux/config
SELINUX=disabled
# 重啟生效

# 或針對性放行 (推薦)
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql

方案二:AppArmor (Ubuntu/Debian/SLES)


# 編輯設定檔
vi /etc/apparmor.d/usr.sbin.mysqld

# 在現有 /var/lib/mysql/ 規則下新增自訂目錄
/data/mysql/ r,
/data/mysql/** rwk,

# 重新載入
systemctl restart apparmor
# 或
/etc/init.d/apparmor restart

通用檢查清單

  1. chown -R mysql:mysql /data/mysql (擁有者正確)
  2. chmod 750 /data/mysql (權限正確)
  3. my.cnf 中 datadir=/data/mysql 路徑正確
  4. 若為移動現有資料目錄,需同步移動 ibdata1, ib_logfile*, *.ibd 等檔案

核心原則:Linux 強制存取控制 (MAC) 預設只允許預設路徑,遷移 datadir 必須同步更新 SELinux/AppArmor 政策。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved