Rozwiązywanie problemów z połączeniami z bazą danych

Ostatnia aktualizacja 20 gru 2021

Rozwiązywanie problemów z uprawnieniami, komunikaty o błędach Microsoft, komunikaty o błędach MySQL w programie Dreamweaver.

Interfejs użytkownika w programie Dreamweaver i nowszych wersjach został uproszczony. Dlatego począwszy od wersji Dreamweaver niektóre opcje opisane w tym artykule mogą nie być dostępne. Więcej informacji zawiera ten artykuł.

Rozwiązywanie problemów z uprawnieniami

Jednym z najczęstszych problemów są niewystarczające uprawnienia folderu lub pliku. Jeśli baza danych znajduje się na komputerze z systemem Windows 2000 lub Windows XP i wyświetla się komunikat o błędzie podczas próby wyświetlenia strony dynamicznej w przeglądarce internetowej lub w widoku na żywo, błąd może wynikać z problemu z uprawnieniami.

Konto Windows próbujące uzyskać dostęp do bazy danych nie ma wystarczających uprawnień. Kontem tym może być anonimowe konto Windows (domyślnie IUSR_computername) lub specyficzne konto użytkownika, jeśli strona została zabezpieczona dla uwierzytelnionego dostępu.

Należy zmienić uprawnienia, aby nadać kontu IUSR_computername prawidłowe uprawnienia, dzięki czemu serwer internetowy będzie mógł uzyskać dostęp do pliku bazy danych. Ponadto folder zawierający plik bazy danych musi mieć także ustawione określone uprawnienia do zapisu w tej bazie danych.

Jeśli strona ma być dostępna anonimowo, nadaj kontu IUSR_computername pełną kontrolę nad folderem i plikiem bazy danych, zgodnie z opisem w procedurze poniżej.

Dodatkowo, jeśli ścieżka do bazy danych jest odwoływana przy użyciu UNC (\\Server\Share), upewnij się, że uprawnienia udziału nadają kontu IUSR_computername pełny dostęp. Ten krok ma zastosowanie nawet wtedy, gdy udział znajduje się na lokalnym serwerze internetowym.

Jeśli skopiujesz bazę danych z innej lokalizacji, może ona nie odziedziczyć uprawnień z folderu docelowego i być może będziesz musiał zmienić uprawnienia dla bazy danych.

Sprawdź lub zmień uprawnienia pliku bazy danych (Windows XP)

Upewnij się, że masz uprawnienia administratora na komputerze.
W Eksploratorze Windows znajdź plik bazy danych lub folder zawierający bazę danych, kliknij prawym przyciskiem myszy plik lub folder i wybierz Właściwości.
Wybierz zakładkę Zabezpieczenia.

Ten krok należy wykonać tylko wtedy, jeżeli masz system plików NTFS. Jeżeli masz system plików FAT, to w oknie dialogowym nie będzie zakładki Zabezpieczenia.

Jeśli konto IUSR_computername nie jest wymienione na liście Nazwy grup lub użytkowników, kliknij przycisk Dodaj, aby je dodać.
W oknie dialogowym Wybierz użytkowników lub grupy kliknij przycisk Zaawansowane.

Okno dialogowe zmieni się, pokazując więcej opcji.

Kliknij Lokalizacje i wybierz nazwę komputera.
Kliknij Znajdź teraz, aby wyświetlić listę nazw kont skojarzonych z komputerem.
Wybierz konto IUSR_computername i kliknij OK; następnie ponownie kliknij OK, aby zamknąć okno dialogowe.
Aby przypisać kontu IUSR pełne uprawnienia, zaznacz Pełna kontrola i kliknij OK.

Sprawdź lub zmień uprawnienia pliku bazy danych (Windows 2000)

Upewnij się, że masz uprawnienia administratora na komputerze.
W Eksploratorze Windows znajdź plik bazy danych lub folder zawierający bazę danych, kliknij prawym przyciskiem myszy plik lub folder i wybierz Właściwości.
Wybierz zakładkę Zabezpieczenia.
Spostrzeżenie

Ten krok należy wykonać tylko wtedy, jeżeli masz system plików NTFS. Jeśli masz system plików FAT, okno dialogowe nie będzie miało karty Zabezpieczenia.

Jeśli konto IUSR_computername nie jest wymienione wśród kont Windows w oknie dialogowym Uprawnienia pliku, kliknij przycisk Dodaj, aby je dodać.
W oknie dialogowym Wybierz użytkowników, komputery lub grupy wybierz nazwę komputera z menu Look In, aby wyświetlić listę nazw kont skojarzonych z komputerem.
Wybierz konto IUSR_computername i kliknij Dodaj.
Aby przypisać kontu IUSR pełne uprawnienia, wybierz Pełna kontrola z menu Typ dostępu i kliknij OK.

Aby zapewnić dodatkowe bezpieczeństwo, uprawnienia można ustawić tak, aby uprawnienie do odczytu było wyłączone dla folder internetowy zawierający bazę danych. Przeglądanie folderu nie będzie dozwolone, ale strony internetowe nadal będą mogły uzyskać dostęp do bazy danych.

Aby uzyskać więcej informacji o koncie IUSR i uprawnieniach serwera internetowego, zapoznaj się z następującymi informacjami technicznymi w Centrum pomocy technicznej Adobe:

Rozwiązywanie problemów: komunikaty o błędach firmy Microsoft

Te komunikaty o błędach firmy Microsoft mogą wystąpić podczas żądania strony dynamicznej z serwera, jeśli używasz Internet Information Server (IIS) z systemem baz danych Microsoft, takim jak Access lub SQL Server.

Firma Adobe nie zapewnia pomocy technicznej w zakresie oprogramowania innych dostawców, takiego jak Microsoft Windows i IIS.Jeśli te informacje nie rozwiążą problemu, skontaktuj się z pomocą techniczną firmy Microsoft lub odwiedź witrynę pomocy technicznej firmy Microsoft pod adresem http://support.microsoft.com/.

Więcej informacji o błędach 80004005 podano w dokumencie „INFO: Troubleshooting Guide for 80004005 Errors in Active Server Pages and Microsoft Data Access Components (Q306518)” w serwisie firmy Microsoft pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q306518.

[[Reference]80004005—Nie znaleziono nazwy źródła danych i nie określono sterownika domyślnego]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce internetowej lub w widoku na żywo. Komunikat o błędzie może się różnić w zależności od bazy danych i serwera internetowego. Inne warianty komunikatu o błędzie obejmują:

  • 80004005 — Nie powiodła się operacja SQLSetConnectAttr sterownika

  • 80004005 — Błąd ogólny. Nie można otworzyć klucza rejestru 'DriverId'

    Oto potencjalne przyczyny i rozwiązania:

  • Strona nie może znaleźć nazwy DSN. Sprawdź, czy utworzono nazwę DSN zarówno na serwerze WWW, jak i na komputerze lokalnym.

  • Nazwa ta mogła zostać skonfigurowana jako nazwa DSN użytkownika, a nie systemowa nazwa DSN. Usuń nazwę DSN użytkownika i zastąp ją systemową nazwą DSN.

Jeżeli nie usuniesz nazwy DSN użytkownika, to powielone nazwy DSN spowodują nowy błąd ODBC.

Jeżeli używasz programu Microsoft Access, to plik bazy danych (.mdb) może być zablokowany. Blokada może wynikać z faktu, że inna nazwa DSN korzysta właśnie z tej bazy danych. Otwórz Eksplorator Windows i odszukaj plik blokady (.ldb) w folderze, który zawiera plik bazy danych (.mdb). Usuń plik .ldb. Jeżeli inna nazwa DSN wskazuje ten sam plik bazy danych, usuń ją, aby uniknąć w przyszłości występowania tego błędu. Po wprowadzeniu zmian uruchom ponownie komputer.

[[Reference]80004005—Nie można użyć '(nieznany)'; plik jest już używany]

Ten błąd występuje w przypadku korzystania z bazy danych Microsoft Access i próby wyświetlenia strony dynamicznej w przeglądarce internetowej lub w widoku na żywo.Inny wariant tego komunikatu o błędzie to „80004005 — aparat bazy danych Microsoft Jet nie może otworzyć pliku (nieznany)".

Prawdopodobną przyczyną jest problem z uprawnieniami.Oto konkretne przyczyny i rozwiązania:

  • Konto używane przez serwer informacyjny internetowy (Internet Information Server) (zwykle IUSR) może nie mieć odpowiednich uprawnień systemu Windows do bazy danych opartej na plikach lub do folderu zawierającego plik. Sprawdź uprawnienia konta IIS (IUSR) w menedżerze użytkowników.

  • Możesz nie mieć uprawnień do tworzenia lub usuwania plików tymczasowych. Sprawdź przyzwolenia do pliku i do folderu. Upewnij się,\nże masz uprawnienia do tworzenia lub usuwania plików tymczasowych.Pliki tymczasowe zwykle są tworzone w tym samym folderze co baza danych, ale plik może być również utworzony w innych folderach takich jak /Winnt.

  • W systemie Windows 2000 może być konieczna zmiana wartości\nlimitu czasu dla nazwy DSN bazy danych Access.Aby zmienić wartość limitu czasu, wybierz Start > Ustawienia > Panel sterowania > Narzędzia administracyjne > Źródła danych (ODBC).Kliknij kartę\nSystem, podświetl prawidłową nazwę DSN i kliknij przycisk Konfiguruj.\nKliknij przycisk Opcje i zmień wartość opcji „Limit czasu strony” na 5000.

    Jeśli nadal występują problemy,\nzapoznaj się z następującymi artykułami z bazy wiedzy firmy Microsoft:

  • PRB: 80004005 „Nie można użyć „(nieznany)"; plik jest już\nużywany" pod adresem http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174943.

  • PRB: Łączność z bazą danych Microsoft Access kończy się niepowodzeniem w Active Server Pages pod adresem http://support.microsoft.com/default.aspx?scid=kb;en-us;Q253604.

  • PRB: „Error: Cannot Open File Unknown Using Access” pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q166029.

[[Reference]80004005—Logowanie nie powiodło się()]

Ten błąd występuje w przypadku korzystania z programu Microsoft SQL Server i próby wyświetlenia strony dynamicznej w przeglądarce internetowej lub w widoku na żywo.

Ten błąd jest generowany przez serwer SQL, jeśli nie akceptuje lub nie rozpoznaje przesyłanego konta logowania ani hasła (w przypadku korzystania ze standardowych zabezpieczeń) albo jeśli konto systemu Windows nie jest zmapowane na konto SQL (w przypadku korzystania ze zintegrowanych zabezpieczeń).

Oto potencjalne rozwiązania:

  • W przypadku korzystania ze standardowego zabezpieczenia nazwa konta i hasło mogą być nieprawidłowe.Wypróbuj konto administratora systemu i hasło (UID="sa" i brak hasła), które musi być zdefiniowane w wierszu ciągu połączenia.(DSN nie przechowują nazw użytkowników i haseł.)

  • Jeśli używasz zintegrowanego zabezpieczenia, sprawdź konto Windows wywołujące stronę i znajdź jego mapowane konto SQL (jeśli istnieje).

  • SQL Server nie zezwala na znak podkreślenia w nazwach kont SQL.Jeśli ktoś ręcznie mapuje konto Windows IUSR_machinename na konto SQL o takiej samej nazwie, operacja zakończy się niepowodzeniem.Mapuj każde konto, które używa podkreślenia, na nazwę konta w SQL, która nie używa podkreślenia.

[[Odwołanie]80004005 — operacja musi używać zapytania umożliwiającego aktualizację]

Ten błąd występuje, gdy zdarzenie aktualizuje zestaw rekordów lub wstawia dane w zestawie rekordów.

Oto możliwe przyczyny i rozwiązania:

  • Uprawnienia ustawione w folderze zawierającym bazę danych są zbyt restrykcyjne.Uprawnienia IUSR muszą być ustawione na odczyt/zapis.

  • Uprawnienia do samego pliku bazy danych nie mają wpełni skutecznych uprawnień do odczytu/zapisu.

  • Baza danych może znajdować się poza katalogiem Inetpub/wwwroot. Chociaż można wyświetlać i przeszukiwać dane, może być niemożliwe ich aktualizowanie, jeśli baza danych nie znajduje się w katalogu wwwroot.

  • Zestaw rekordów jest oparty na zapytaniu, którego nie można uaktualniać. Złączenia to dobre przykłady zapytań, których nie można aktualizować w bazie danych. Zmień strukturę zapytań, aby można je było aktualizować.

    Więcej informacji o tym błędzie można znaleźć w artykule „PRB: ASP 'Error The Query Is Not Updateable' When You Update Table Record" w bazie wiedzy Microsoft Knowledge Base pod adresem http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174640.

[[Reference]80040e07 — Niezgodność typu danych w wyrażeniu kryteriów]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwera Insert Record lub Update Record, a zachowanie serwera próbuje ustawić wartość kolumny Date/Time w bazie danych Microsoft Access na pusty ciąg znaków ("").

Microsoft Access ma silne typowanie danych — nakłada rygorystyczny zestaw reguł na wartości w danych kolumnach. Pusta wartość ciągu znaków w zapytaniu SQL nie może zostać zapisana w kolumnie Data/czas programu Access. Obecnie jedynym znanym obejściem jest unikanie wstawiania lub aktualizowania kolumn Data/czas w programie Access z pustymi ciągami znaków ("") lub innymi wartościami, które nie odpowiadają zakresowi wartości określonemu dla tego typu danych.

[[Reference]80040e10 — Zbyt mało parametrów]

Ten błąd występuje, gdy kolumna określona w zapytaniu SQL nie istnieje w tabeli bazy danych. Sprawdź nazwy kolumn w tabeli bazy danych, porównując je z zapytaniem SQL.Przyczyną tego błędu jest często błąd typograficzny.

[[Reference]80040e10 — Pole COUNT jest niepoprawne

Ten błąd występuje podczas podglądu strony zawierającej zachowanie serwera Wstaw rekord w przeglądarce internetowej i próbie użycia go do wstawienia rekordu w bazie danych Microsoft Access.

Może następuje próba wstawienia rekordu do pola bazy danych, które zawiera znak zapytania (?)w nazwie pola. Znak zapytania to znak specjalny w niektórych silnikach baz danych, w tym Microsoft Access, i nie należy go używać w nazwach tabel baz danych lub nazwach pól.

Otwórz system bazy danych i usuń znak zapytania (?) z nazw pól oraz zaktualizuj zachowania serwera na stronie, które odwołują się do tego pola.

[[Reference]80040e14 — Błąd składni w instrukcji INSERT INTO]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwera Wstaw rekord.

Ten błąd zwykle wynika z jednego lub kilku z następujących problemów z nazwą pola, obiektu lub zmiennej w bazie danych:

  • Użyto zastrzeżonego słowa jako nazwy. Większość baz danych ma zbiór słów zastrzeżonych. Np. słowo "date" jest słowem zastrzeżonym i nie można go używać w nazwach kolumn w bazie danych.

  • W nazwie użyto znaków specjalnych. Przykłady znaków specjalnych:

    . / * : ! # & - ?

  • W nazwie użyto spacji.

    Błąd ten może wystąpić także wtedy, gdy dla obiektu w bazie danych zdefiniowano maskę wprowadzania, a wstawiane dane są niezgodne z tą maską.

    Aby rozwiązać ten problem, nie stosuj słów zastrzeżonych, np. "date", "name", "select", "where" oraz "level" w nazwach kolumn w bazie danych. Usuń także spacje i znaki specjalne z nazw.

    Listę zastrzeżonych słów w popularnych systemach baz danych można znaleźć na poniższych stronach WWW:

  • Microsoft Access pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q209187

  • MySQL pod adresem http://dev.mysql.com/doc/mysql/en/reserved-words.html

[[Reference]80040e21 — Błąd ODBC podczas wstawiania lub aktualizacji]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwera Aktualizuj rekord lub Wstaw rekord. Baza danych nie może obsłużyć operacji aktualizacji lub wstawiania, którą próbuje wykonać zachowanie serwera.

Oto możliwe przyczyny i rozwiązania:

  • Zachowanie serwera próbuje zaktualizować pole autonumerowania tabeli bazy danych lub wstawić rekord do pola autonumerowania. Ponieważ pola autonumerowania są wypełniane automatycznie przez system bazy danych, każda próba zewnętrznego wypełnienia ich wartością kończy się niepowodzeniem.

  • Dane, które zachowanie serwera aktualizuje lub wstawia, są niewłaściwego typu dla pola bazy danych, na przykład wstawianie daty do pola logicznego (tak/nie), wstawianie ciągu znaków do pola numerycznego lub wstawianie nieodpowiednio sformatowanego ciągu znaków do pola Data/czas.

[[Reference]800a0bcd — BOF lub EOF ma wartość True]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce internetowej lub w widoku na żywo.

Problem występuje, gdy strona próbuje wyświetlić dane z pustego zestawu rekordów. Aby rozwiązać problem, zastosuj zachowanie serwera Pokaż region do zawartości dynamicznej, która ma być wyświetlana na stronie, w następujący sposób:

Zaznacz zawartość dynamiczną na stronie.

W panelu Zachowania serwera kliknij przycisk Plus (+) i wybierz Pokaż region > Pokaż region, jeśli zestaw rekordów nie jest pusty.

Wybierz zestaw rekordów dostarczający zawartość dynamiczną i kliknij OK.

Powtórz kroki 1—3 dla każdego elementu zawartości dynamicznej na stronie.

Rozwiązywanie problemów: komunikaty o błędach MySQL

Jeden popularny komunikat błędu, z którym możesz się spotkać podczas testowania połączenia bazy danych PHP z MySQL 4.1, to „Client does not support authentication protocol requested".Rozważ aktualizację klienta MySQL.

Może być konieczne przywrócenie wcześniejszej wersji MySQL lub zainstalowanie PHP 5 i skopiowanie niektórych bibliotek łączonych dynamicznie (DLL).Szczegółowe instrukcje można znaleźć w artykule Konfigurowanie środowiska programistycznego PHP.