簡體   English   中英

MySQL 運行 SQL 腳本錯誤 - [WinError 32] 進程無法訪問該文件,因為它正被另一個進程使用:

[英]MySQL Running SQL Script error - [WinError 32] The process cannot access the file because it is being used by another process:

錯誤圖片

運行 SQL 腳本加載數據時出現錯誤。 錯誤貼在下面:

Preparing...
[WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\PRATIK~1\\AppData\\Local\\Temp\\tmpf75l0wi5.cnf'

我曾多次嘗試卸載和安裝 MySQL,但沒有任何幫助。

我在嘗試運行 MySQL 腳本時遇到了同樣的問題。 我試圖在臨時文件夾中找到該進程並將其刪除並再次嘗試,但該進程似乎再次開始並出現在臨時文件夾中。 我無法運行腳本,但是,我找到了一種解決方法,而不是運行腳本,而是嘗試打開它並在查詢編輯器中運行它。

聽起來您之前已經嘗試過執行該腳本並在不停止 mysqld 進程的情況下停止了它。 所以這個過程(實際導入)仍然對臨時配置文件持有文件鎖。

嘗試刪除該文件並檢查您不想要的所有 MySQL 進程是否已停止。 然后再試一次。

只需降級您的 MySQL 工作台版本即可。 就我而言,我將版本從 8.0.25 降級到 8.0.20。

似乎實際問題與 MySQL 本身無關,而是與 MySQL Workbench 相關。

您看到的錯誤是來自 Windows 本身的一般錯誤,而不是來自 MySQL。 目前尚不清楚您是如何運行 MySQL 的,例如它是在您的本地主機中、在 Docker 環境中還是在遠程服務器中。

似乎很明顯,至少有兩個進程試圖獲得對該臨時文件的獨占鎖定。 我的猜測是 MySQL 不會將臨時文件寫入我們看到的用戶文件夾(使用您的用戶名 Pratik)。

在 Windows 上,MySQL 按順序檢查 TMPDIR、TEMP 和 TMP 環境變量的值。 對於發現設置的第一個,MySQL 使用它並且不檢查剩余的那些。 如果 TMPDIR、TEMP 或 TMP 均未設置,則 MySQL 使用 Windows 系統默認值,通常為 C:\windows\temp。

您可以做的是更改您的 MySQL 配置,使其使用您將設置的特定臨時路徑,重新啟動 MySQL 並重試運行查詢。 如果您看到錯誤包含您已隔離問題的新臨時路徑,則確實是 MySQL 問題。 如果您一直看到此路徑,則您已將問題隔離到 MySQL WorkBench。

另一種方法是從另一個 MySQL 客戶端運行相同的查詢,例如命令行客戶端mysql 看看你是否得到同樣的錯誤。

可能更簡單的方法是使用另一個 MySQL 客戶端 dBeaver 嘗試查詢,並使用它將問題隔離到 MySQL 服務器本身或 MySQL WorkBench。

這是 MySQL 升級版本的常見問題,嘗試使用 Open Script 而不是 Run Script,這似乎可以解決問題。

謝謝你,阿基姆·艾因拉。 “運行 SQL 腳本將不起作用,”打開 SQL 腳本或“打開最近”將起作用

我發現它已經在官方錯誤跟蹤器中報告: https://bugs.mysql.com/bug.php?id=10484 我剛剛檢查過,它仍然存在於 MySQL Workbench 8.0.30 中。

變通
不要嘗試從此工具欄打開 SQL 文件:

在此處輸入圖像描述

Go 到服務器 > 數據導入:

在此處輸入圖像描述

  • select 從獨立文件導入
  • select 你的目標架構
  • 然后開始導入(右下btn)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM