如何修復 MySQL 錯誤 1044

已發表: 2024-03-29

使用資料庫管理時,您可能會遇到 MySQL 錯誤 1044。這種偶爾出現的、不太常見的錯誤表示「存取被拒絕」訊息。 當您嘗試使用 phpMyAdmin 匯入資料庫時會發生這種情況。

儘管這個錯誤看起來很令人頭疼,但透過正確的方法和一點技術洞察力,您將可以修復它。 如果您遇到過這個特定問題,請不要擔心。 在本指南中,我們將討論故障排除和一些技術知識,以快速輕鬆地解決此錯誤。

讓我們先了解此錯誤背後的原因以及如何輕鬆修復它。

MySQL錯誤1044是什麼?

1044 存取被拒絕錯誤通常發生在共享主機帳戶上,因為它們通常缺乏對資料庫伺服器的完整 root 存取權。 當您嘗試使用 phpMyAdmin 匯入資料庫時也會出現此錯誤,它不僅有助於管理當前資料庫,而且只需單擊幾下即可輕鬆從備份檔案匯入資料。

匯入 .sql 檔案時,您的腳本嘗試使用以下命令建立資料庫:

 建立資料庫學生;

但隨後,並沒有輕鬆進行,而是彈出了一條令人沮喪的訊息:

 #1044 - 使用者「training」@「localhost」存取資料庫「students」被拒絕

簡而言之,當您使用 cPanel 等共享主機時,關於如何命名資料庫以及可以使用它們做什麼有嚴格的規則。 在此類設定中,使用者通常無法獲得資料庫伺服器的完全根存取權。 您不能根據 .sql 檔案中的命令隨時建立或刪除資料庫。

將 MySQL 1044 錯誤視為一個提醒。 它告訴您,您正在嘗試執行資料庫中沒有權限的操作。

MySQL 錯誤 1044 背後的原因是什麼?

資料庫命名約定: MySQL 1044 錯誤通常源自於兩個主要來源。首先,它是關於命名約定的。 您的資料庫名稱可能不遵循託管服務設定的規則。 例如,在 cPanel 環境中,需要遵守特定的格式:資料庫名稱應以 cPanel 使用者名稱開頭,後面接著劃線。

權限限制:共享託管計劃通常會限制某些 SQL 命令,以防止使用者意外(或故意)執行可能影響同一伺服器上其他使用者的操作。其中包括建立或刪除資料庫。 這可能會導致錯誤,例如 MySQL 1044:存取被拒絕。

如何修復 MySQL 錯誤 1044?

您可以採取一些簡單的步驟來確保您的資料庫匯入不會遇到像 MySQL 錯誤 1044 這樣的阻塞錯誤。以下是您可以採取哪些措施來使事情恢復正常的詳細資訊:

調整 .sql 檔案中的資料庫命名

資料庫的名稱必須遵循託管環境的特定命名約定。 例如,如果 .sql 檔案中的初始命令為“ CREATE DATABASE Students;” `,您需要將其調整為` CREATE DATABASE Training_students;之類的內容; ` 以與 cPanel 的命名協定保持一致。 這個小更改可確保您的資料庫名稱被您的託管服務識別並接受。

手動建立資料庫

在考慮匯入之前,請透過託管控制面板手動設定資料庫。

  1. 登入您的虛擬主機的控制面板。
  2. 查找資料庫部分並單擊它。
  3. 選擇 MySQL 資料庫精靈 (或類似工具)開始設定新資料庫。
  4. 依照主機的規則命名您的資料庫(例如「使用者名稱_資料庫名稱」),然後按一下繼續。
  5. 現在,透過輸入新的使用者名稱和密碼來建立資料庫使用者。 確保這些詳細資訊安全; 稍後你會需要它們。
  6. 將此使用者指派給您的資料庫,並透過選擇「所有權限」授予他們所有權限。 這使用戶可以對資料庫執行所需的所有操作。
  7. 設定完成後,記下您的資料庫名稱、使用者名稱和密碼。

這種先發製人的措施可確保資料庫正確設定並具有正確的權限。

註解掉不必要的指令

如果您的 .sql 檔案包含建立資料庫的直接命令,請透過在每個相關行前加上「 - 」前綴來中和它們。 這會將活動命令轉換為註釋,從而在匯入過程中有效地將它們置於一邊。 這是一個巧妙的技巧,可以確保您的導入重點關注資料和結構,而不是嘗試建立現有的資料庫。

使用正確的導入方法

準備好 .sql 檔案並準備好資料庫後,繼續透過 phpMyAdmin 或您首選的資料庫管理工具匯入您的檔案。 確保將匯入目標定位到您準備好的資料庫,從而實現從檔案到資料庫系統的平穩資料轉換。

查看並調整權限

  1. 登入您的主機控制面板並開啟 phpMyAdmin。
  2. 在 phpMyAdmin 中,在左側邊欄中找到並點擊您的資料庫名稱。 這將顯示資料庫中的所有關聯表。
  3. 轉到“權限”“使用者”選項卡。
  4. 編輯使用者權限。
  5. 檢查並調整權限。 您將看到權限或特權的清單。 確保該使用者俱有執行 .sql 檔案所需的操作所需的權限。 通常,您需要確保啟用 SELECT、INSERT、UPDATE、DELETE 和 EXECUTE 等權限。 如果匯入不需要,請避免啟用建立或刪除資料庫的權限。僅授予使用者需要執行的任務所需的權限。
  6. 儲存變更並重試導入。

    調整權限後,嘗試透過 phpMyAdmin 再次匯入 .sql 文件,看看流程是否成功完成。

    結論

    MySQL 錯誤 1044 最初看起來可能是一個重大挑戰,但它通常歸結為命名約定和權限設定——這些因素完全在您的控制範圍內。

    修復 MySQL 錯誤 1044 主要是為了與主機的資料庫命名約定保持一致並確保資料庫使用者擁有必要的權限。 這個錯誤雖然看起來是一個主要障礙,但卻是可以控制的。 透過正確的方法和一點耐心,您會發現,即使是像這樣看似複雜的錯誤,您也有能力解決,從而使您的專案步入正軌並順利推進。

    透過採取上述步驟,您可以解決此錯誤並成功匯入資料庫,從而使您的專案順利進行。