首頁 > 資料庫 > mysql教程 > 為什麼使用 LOAD DATA INFILE 時 MySQL 無法存取我的檔案?

為什麼使用 LOAD DATA INFILE 時 MySQL 無法存取我的檔案?

Linda Hamilton
發布: 2024-11-03 20:21:02
原創
633 人瀏覽過

Why Can't MySQL Access My File When Using LOAD DATA INFILE?

LOAD DATA INFILE 錯誤代碼:13

嘗試在遠端伺服器上使用LOAD DATA INFILE 指令將資料載入到MySQL 表中時,MySQL 表中時,您可能會遇到錯誤代碼:13:「無法取得'/httpdocs/.../.../testFile.csv' 的統計資料(錯誤代碼:2)」。這表示 MySQL 無法存取指定的檔案。

以下步驟可以幫助解決此問題:

1.授予足夠的權限

確保資料庫使用者有足夠的權限

GRANT SELECT, FILE, LOAD DATA ON *.* TO 'userName'@'%'
登入後複製

確保資料庫使用者有足夠的權限來存取該檔案。考慮授予使用者SELECT、FILE 和LOAD DATA 權限:

2.設定檔案和資料夾權限

<code class="bash">chmod 644 /httpdocs/.../.../testFile.csv
chmod 755 /httpdocs/.../.../</code>
登入後複製

確保檔案和資料夾允許MySQL讀取文件。將檔案權限設定為 644 (rw-r--r--),將資料夾權限設定為 755 (rwxr-xr-x):

3。檢查Apparmor設定

/tmp/** rwk
登入後複製

在Ubuntu系統上,Apparmor可以限制MySQL對檔案的存取。若要允許MySQL 從「tmp」目錄讀取文件,請將以下行加入/etc/apparmor.d/usr.sbin.mysqld:

<code class="bash">sudo /etc/init.d/apparmor reload</code>
登入後複製

使用以下命令重新載入Apparmor:

4。停用SELinux

如果使用SELinux(安全增強型Linux),它還可以限製檔案存取。嘗試暫時停用它並重新執行 LOAD DATA INFILE 命令。請參閱 SELinux 文件以取得具體說明。

    附加說明:
  • 確保LOAD DATA INFILE 語句中指定的檔案路徑正確且可由MySQL 存取.
考慮使用sqlimport 或mysql.connector 等資料導入工具來匯入資料。

以上是為什麼使用 LOAD DATA INFILE 時 MySQL 無法存取我的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板