使用手冊 取消

疑難排解資料庫連線

 

 

疑難排解 Dreamweaver 中的權限問題、Microsoft 錯誤訊息和 MySQL 錯誤訊息。

註解:

Dreamweaver 和更高版本的用戶介面已經簡化。因此,您在 Dreamweaver 和更高版本中可能會找不到本文所描述的一些選項。如需詳細資訊,請參閱本文

疑難排解權限問題

最常見的問題之一是資料夾或檔案權限不足。如果您的資料庫是位於 Windows 2000 或 Windows XP 電腦上,而且當您嘗試在網頁瀏覽器或「即時檢視」中檢視動態網頁時收到錯誤訊息,那麼錯誤很可能是權限問題所造成的。

嘗試存取資料庫的 Windows 帳號沒有足夠的權限。這個帳號可能是匿名 Windows 帳號 (預設值為 IUSR_電腦名稱) 或特定的使用者帳號 (如果已使用驗證存取確保頁面的安全)。

您必須變更權限,讓「IUSR_電腦名稱」帳號擁有正確的權限,如此網頁伺服器才能存取資料庫檔案。此外,資料庫檔案所在的資料夾也必須要有某些權限,才能寫入資料庫。

如果頁面是要專供匿名存取,請為「IUSR_電腦名稱」帳號指定資料夾與資料庫檔案的完整控制權,程序如下所述。

此外,如果資料庫的路徑是使用 UNC (\\Server\Share) 做為參考,請確定「共用使用權限」為「IUSR_電腦名稱」帳號指定了完整的存取權。即使是在本機網路伺服器上進行共享也是使用相同的步驟。

如果您由其他位置複製資料庫,資料庫可能不會自動由目標資料夾繼承權限,您可能必須變更資料庫的權限。

檢查或變更資料庫檔案的權限 (適用於 Windows XP)

  1. 請確定您具有該部電腦的 Administrator 權限。
  2. 「Windows 檔案總管」中找到資料庫檔案或是資料庫所在的資料夾,在檔案或資料夾上按一下右鍵並選取「內容」。
  3. 選取「安全性」索引標籤。
    註解:

    只有在使用 NTFS 檔案系統時才能執行此步驟。如果您使用 FAT 檔案系統,則對話方塊中不會有「安全性」標籤。

  4. 如果「群組」或「使用者名稱」清單中並未列出「IUSR_電腦名稱」帳號,請按一下「新增」按鈕以加入該帳號。
  5. 在「選取使用者或群組」對話方塊中,按一下「進階」。

    對話方塊將會變更,以顯示更多選項。

  6. 按一下「位置」並選取電腦名稱。
  7. 按一下「立即尋找」以顯示與電腦關聯的帳戶名稱清單。
  8. 選取「IUSR_電腦名稱」帳號並按一下「確定」;然後再次按一下「確定」,以清除對話方塊。
  9. 若要為 IUSR 帳號指定完整權限,請選取「完全控制」,然後按一下「確定」。

檢查或變更資料庫檔案的權限 (適用於 Windows 2000)

  1. 請確定您具有該部電腦的 Administrator 權限。
  2. 「Windows 檔案總管」中找到資料庫檔案或是資料庫所在的資料夾,在檔案或資料夾上按一下右鍵並選取「內容」。
  3. 選取「安全性」索引標籤。
    註解:

    只有在使用 NTFS 檔案系統時才能執行此步驟。如果您使用 FAT 檔案系統,則對話方塊中不會有「安全性」標籤。

  4. 如果「IUSR_電腦名稱」帳號沒有列在「檔案使用權限」對話方塊的 Windows 帳號中,請按一下「新增」按鈕加入這個帳號。
  5. 在「選取使用者、電腦或群組」對話方塊的「查詢」選單中選取電腦名稱,以顯示與電腦關聯的帳戶名稱清單。
  6. 選取「IUSR_電腦名稱」帳號,並按一下「新增」。
  7. 若要為 IUSR 帳號指定完整權限,請在「存取類型」選單中選取「完全控制」,然後按一下「確定」。

    如果要增加安全性,可將資料庫所在的網路資料夾的「讀取」權限關閉。系統將不允許瀏覽資料夾,但網頁仍然可以存取資料庫。

    如需有關 IUSR 帳號與網路伺服器使用權限的詳細資訊,請參閱下列「Adobe 支援中心」中的 TechNotes:

疑難排解 Microsoft 錯誤訊息

如果您使用 Internet Information Server (IIS) 與 Microsoft 資料庫系統 (例如 Access 或 SQL Server),當您從伺服器要求動態網頁時,可能會出現這些 Microsoft 錯誤訊息。

註解:

Adobe 並不對協力廠商軟體 (例如 Microsoft Windows 和 IIS) 提供技術支援。如果此資訊無法修正您的問題,請與 Microsoft 技術支援連絡,或造訪 Microsoft 支援網站,網址為:http://support.microsoft.com/

如需有關 80004005 錯誤的詳細資訊,請參閱「Active Server Pages 及 Microsoft Data Access Components 中 80004005 錯誤的疑難排解指南 (Q306518)」,這篇文章位於 Microsoft 網站,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q306518。

[[參考] 80004005 - 找不到資料來源名稱且沒有指定預設驅動程式]

當您嘗試在網路瀏覽器或是「即時檢視」中檢視動態網頁時,可能會發生此錯誤。因使用的資料庫與網路瀏覽器不同,錯誤訊息也可能會改變。錯誤訊息的其他變化包括:

  • 80004005 - 驅動程式的 SQLSetConnectAttr 失敗

  • 80004005 - 一般錯誤:無法開啟登錄金鑰「DriverId」

    以下是可能的原因和解決方案:

  • 頁面找不到 DSN。請確定是否已於網路瀏覽器與本機電腦上建立 DSN。

  • DSN 可能已設定為使用者 DSN,而非系統 DSN。刪除使用者 DSN,並建立系統 DSN 將原有的 DSN 取代。

註解:

若您並未將使用者 DSN 刪除,則重複的 DSN 名稱將導致新的 ODBC 錯誤。

如果您使用 Microsoft Access,資料庫檔案 (.mdb) 可能會被鎖住。這可能是因為有不同名稱的 DSN 正在存取資料庫。請在「Windows 檔案總管」中,於包含資料庫檔案 (.mdb) 的資料夾內尋找鎖定的檔案 (.ldb),並將這個 .ldb 檔刪除。如果有其他 DSN 指向相同的資料庫檔案,請刪除這些 DSN 以避免在未來發生錯誤。完成任何變更之後,請記得重新啟動電腦。

[[參考] 80004005 - 無法使用 (未知);檔案已在使用中]

當您使用 Microsoft Access 資料庫,並嘗試在網路瀏覽器或是「即時檢視」中檢視動態網頁時,可能會發生此錯誤。這個錯誤訊息的另一個變化是「80004005 - Microsoft Jet 資料庫引擎無法開啟檔案 (未知)」。

這個錯誤可能是權限問題所導致。以下是一些導致錯誤的特定原因與解決方式:

  • Internet Information Server 使用的帳號 (通常是 IUSR) 對於檔案資料庫或含有檔案的資料夾可能沒有正確的 Windows 權限。請在使用者管理員中檢查 IIS 帳號 (IUSR) 的權限。

  • 您可能沒有建立或刪除暫存檔的權限。請檢查處理檔案與資料夾的權限。請確定您擁有可建立或刪除暫存檔的權限。系統通常會在資料庫所在的資料夾中建立暫存檔,不過也有可能會將暫存檔案建立在其他資料夾,如 /Winnt 資料夾之中。

  • 在 Windows 2000 中,必須更改 Access 資料庫 DSN 的逾時值。若要變更逾時值,請選取「開始>設定>控制台>系統管理工具>資料來源 (ODBC)」。按一下「系統」索引標籤,反白標示正確的 DSN,並按一下「設定」按鈕。按一下「選項」按鈕,並將「頁面逾時」值變更為 5000

    如果還是遇到問題,請參閱以下的「Microsoft 知識庫」文章:

  • PRB:80004005「無法使用 (未知);檔案已在使用中」,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q174943

  • PRB:Active Server Pages 中的 Microsoft Access Database 連線發生失敗,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q253604

  • PRB:錯誤「無法使用 Access 開啟未知的檔案」,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q166029

[[參考] 80004005 - 登入失敗()]

當您使用 Microsoft SQL Server,並嘗試在網路瀏覽器或是「即時檢視」中檢視動態頁面時,可能會發生此錯誤。

如果 SQL Server 無法接受或識別使用者送出的登入帳號或是密碼 (如果您使用的是標準安全性),或是 Windows 帳號無法對應至 SQL 帳號 (如果您使用的是整合安全性) 時,則 SQL Server 就會產生此錯誤。

可能的解決方案有:

  • 如果您使用的是標準安全性,則帳號名稱與密碼可能有誤。嘗試系統管理員帳號與密碼 (UID 為 sa;不輸入密碼),這組帳號與密碼應該定義在連結字串行中 (DSN 並不會儲存使用者名稱與密碼)。

  • 如果您使用的是整合安全性,請檢查呼叫頁面的 Windows 帳號,並找到對應的 SQL 帳號 (如果有的話)。

  • SQL Server 並不允許 SQL 帳號名稱中有底線存在。如果有人手動將 Windows IUSR_machinename 帳號對應至具有相同名稱的 SQL 帳號,就會發生失敗。請將有使用底線的任何帳號對應至並未使用底線的 SQL 帳號名稱。

[[參考] 80004005 - 作業必須使用可更新的查詢]

在事件更新資料集或是在資料集中插入資料時,可能會發生這個錯誤。

以下是可能的原因和解決方案:

  • 資料庫所在的資料夾權限的限制太過嚴格。IUSR 的權限必須設為讀取/寫入。

  • 對於資料庫檔案本身實際上並沒有完整的讀取/寫入權限。

  • 資料庫可能位於「Inetpub/wwwroot」目錄以外的位置。雖然您仍可以檢視並搜尋資料,但是如果資料庫不在 wwwroot 目錄中,便無法更新資料庫。

  • 資料集是以一個無法更新的查詢為基礎。Joins 就是資料庫中無法更新的查詢的極佳範例。請重新組織所有查詢,使所有查詢都可更新。

    如需關於這個錯誤的詳細資訊,請參閱 Microsoft 知識庫中的「PRB:ASP 錯誤:更新表格記錄時無法更新查詢」,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q174640

[[參考] 80040e07 - 資料類型與標準運算式中的資料類型不符]

當伺服器嘗試處理含有「插入記錄」或「更新記錄」伺服器行為的頁面,且伺服器行為嘗試將 Microsoft Access 資料庫中的「日期/時間」欄的值設為空白字串 ("") 時,可能發生此錯誤。

Microsoft Access 有強大的資料分類功能,因此對於內定欄的值有許多嚴格的規則。SQL 查詢中的空白字串值不可儲存在 Access 的「日期/時間」欄中。目前唯一已知的解決方式是避免在 Access 中插入或更新含有空白字串 ("") 的「日期/時間」欄,或是插入或更新無法對應至資料類型指定的值範圍的任何其他值。

[[參考]80040e10 - 參數太少]

如果您的 SQL 查詢中指定的欄並沒有存在於資料庫表格中,就可能發生這個錯誤。請對照檢查資料庫表格中的欄名稱與 SQL 查詢中的名稱。這個錯誤通常是因為打字上的錯誤而造成。

[[參考] 80040e10 - COUNT 欄位不正確]

當您在網路瀏覽器中預覽含有「插入記錄」伺服器行為的頁面,且嘗試使用該伺服器行為在 Microsoft Access 資料庫中插入記錄時,就會發生此錯誤。

您可能嘗試將記錄插入有問號 (?) 的資料庫欄位中。在其欄位名稱中。問號對於某些資料庫引擎而言是特殊字元 (包括 Microsoft Access),因此不應該用來做為資料庫表格名稱或是欄位名稱。

請開啟資料庫系統,並將欄位名稱中的問號 (?) 刪除 ,並將頁面上參照此欄位的伺服器行為更新。

[[參考] 80040e14 - INSERT INTO 陳述式語法錯誤]

當伺服器嘗試處理含有「插入記錄」伺服器行為的頁面時,可能發生此錯誤。

這個錯誤通常是因為資料庫中的欄位、物件、或變數的名稱發生的問題而造成,常發生的問題如下:

  • 名稱中使用保留字。大多數資料庫都有保留字。例如 date 就是保留字,不可以用來作為資料庫中的欄名。

  • 名稱中使用特殊字元。特殊字元包括:

    . / * : ! # & - ?

  • 在名稱中使用空格。

    如果為資料庫中的某個物件定義了輸入遮罩,而插入的資料與遮罩不符,則也可能發生這個錯誤。

    如要修正這個錯誤,請避免在指定資料庫的欄名時使用 date、name、select、where、level 等保留字。此外,請清除名稱中的空格與特殊字元。

    有關常見資料庫系統的保留字清單,請參閱下列網頁:

  • Microsoft Access,網址為:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;Q209187

  • MySQL,網址為:http://dev.mysql.com/doc/mysql/en/reserved-words.html

[[參考] 80040e21 -「插入」或「更新」發生 ODBC 錯誤]

當伺服器嘗試處理含有「更新記錄」或「插入記錄」伺服器行為的頁面時,可能發生此錯誤。資料庫無法處理伺服器行為要執行的更新作業或是插入作業。

以下是可能的原因和解決方案:

  • 伺服器行為正在嘗試更新資料庫表格的自動編號欄位,或是嘗試在自動編號欄位中插入記錄。由於自動編號欄位是由資料庫系統自動產生,因此當您試圖從外部將值填入這些欄位時,就會發生失敗。

  • 對於資料庫欄位而言,伺服器行為所更新或插入的資料類型錯誤,例如在 Boolean (是/否) 欄位中插入日期、在數值欄位中插入字串,或是在「日期/時間」欄位中插入格式不正確的字串等。

[[參考] 800a0bcd - BOF 或 EOF 為 True]

當您嘗試在網路瀏覽器或是「即時檢視」中檢視動態網頁時,可能會發生此錯誤。

當頁面嘗試由空白的資料集中顯示資料時,就會發生問題。如要解決此問題,請在頁面所要顯示的動態內容中加入「顯示區域」伺服器行為,方式如下:

  1. 標示頁面上的動態內容。

  2. 在「伺服器行為」面板中按一下加號 (+) 按鈕,並選取「顯示區域>如果資料集不是空的,即顯示區域」。

  3. 選取提供動態內容的資料集,然後按一下「確定」。

  4. 對頁面上動態內容的每一個元素重複步驟 1 到步驟 3。

疑難排解 MySQL 錯誤訊息

測試 PHP 資料庫與 MySQL 4.1 之間的連線時,您可能會遇到的常見錯誤訊息是「用戶端不支援所要求的驗證通訊協定。請考慮升級 MySQL 用戶端」。

您可能需要回復至舊版的 MySQL,或是安裝 PHP 5 並複製一些動態連結程式庫 (DLL)。如需詳細指示,請參閱設定 PHP 開發環境

更快、更輕鬆地獲得協助

新的使用者?