Устранение неполадок подключений к базам данных

Последнее обновление 20 дек. 2021 г.

Устранение проблем с разрешениями, сообщения об ошибках в продуктах Майкрософт и MySQL в Dreamweaver.

Пользовательский интерфейс в Dreamweaver и более поздних версиях стал проще. В результате этого некоторые функции, описанные в этой статье, могут отсутствовать в Dreamweaver и более поздних версиях. Дополнительные сведения см. в этой статье.

Устранение проблем с разрешениями

Одна из наиболее распространенных проблем — недостаточные права доступа к папке или файлу.Если ваша база данных находится на компьютере с Windows 2000 или Windows XP и вы получаете сообщение об ошибке при попытке просмотреть динамическую страницу в веб-браузере или в режиме Live View, ошибка может быть связана с проблемой разрешений.

Учетная запись Windows, пытающаяся получить доступ к базе данных, не имеет достаточных разрешений. Учетной записью может быть анонимная учетная запись Windows (по умолчанию IUSR_имя_компьютера) или конкретная учетная запись пользователя, если страница была защищена для аутентифицированного доступа.

Измените разрешения, чтобы предоставить учетной записи IUSR_имя_компьютера необходимые разрешения для доступа веб-сервера к файлу базы данных.Кроме того, папка, содержащая файл базы данных, также должна иметь определенные разрешения для записи в эту базу данных.

Если страница предназначена для анонимного доступа, предоставьте учетной записи IUSR_имя_компьютера полный контроль над папкой и файлом базы данных, как описано в процедуре ниже.

Кроме того, если путь к базе данных указывается с использованием UNC (\\Сервер\Общий_ресурс), убедитесь, что разрешения общего доступа предоставляют учетной записи IUSR_имя_компьютера полный доступ. Этот шаг применяется даже если общий ресурс находится на локальном веб-сервере.

Если вы копируете базу данных из другого местоположения, она может не унаследовать разрешения от целевой папки, и вам, возможно, придется изменить разрешения для базы данных.

Проверьте или измените разрешения файла базы данных (Windows XP)

Убедитесь, что у вас есть права администратора на компьютере.
В Проводнике Windows найдите файл базы данных или папку, содержащую базу данных, щелкните правой кнопкой мыши файл или папку и выберите «Свойства».
Перейдите на вкладку «Безопасность».

Этот шаг применим только в том случае, если используется файловая система NTFS. На компьютерах с файловой системой FAT в этом диалоговом окне вкладки «Безопасность» нет.

Если учетная запись IUSR_имя_компьютера не указана в списке «Группы или имена пользователей», нажмите кнопку «Добавить», чтобы добавить ее.
В диалоговом окне «Выбор пользователей или групп» нажмите кнопку «Дополнительно».

В диалоговом окне отобразятся дополнительные параметры.

Щелкните «Размещение» и выберите имя компьютера.
Нажмите «Найти сейчас», чтобы отобразить список имен учетных записей, связанных с компьютером.
Выберите учетную запись IUSR_имя_компьютера и нажмите «ОК»; затем снова нажмите «ОК», чтобы закрыть диалоговое окно.
Чтобы назначить учетной записи IUSR полные разрешения, выберите «Полный контроль» и нажмите «ОК».

Проверьте или измените разрешения файла базы данных (Windows 2000)

Убедитесь, что у вас есть права администратора на компьютере.
В Проводнике Windows найдите файл базы данных или папку, содержащую базу данных, щелкните правой кнопкой мыши файл или папку и выберите «Свойства».
Перейдите на вкладку «Безопасность».
Примечание

Этот шаг применим только в том случае, если используется файловая система NTFS. Если у вас файловая система FAT, в диалоговом окне не будет вкладки «Безопасность».

Если учетная запись IUSR_имя_компьютера не указана среди учетных записей Windows в диалоговом окне «Разрешения файлов», нажмите кнопку «Добавить», чтобы добавить ее.
В диалоговом окне «Выбрать пользователей, компьютеры или группы» выберите имя компьютера из меню «Look In», чтобы отобразить список имен учетных записей, связанных с компьютером.
Выберите учетную запись IUSR_имя_компьютера и нажмите «Добавить».
Чтобы назначить учетной записи IUSR полные разрешения, выберите «Полный контроль» в меню «Тип доступа» и нажмите «ОК».

Для повышения безопасности можно настроить разрешения таким образом, чтобы разрешение на чтение было отключено для веб-папки, содержащей базу данных. Просмотр папки будет запрещен, но веб-страницы по-прежнему смогут получать доступ к базе данных.

Дополнительные сведения об учетной записи IUSR и разрешениях веб-сервера см. в следующих технических заметках Центра поддержки Adobe:

Устранение неполадок, связанных с сообщениями об ошибках в продуктах Майкрософт

Эти сообщения об ошибках Microsoft могут возникать при запросе динамической страницы с сервера, если вы используете Internet Information Server (IIS) с системой базы данных Microsoft, такой как Access или SQL Server.

Adobe не предоставляет техническую поддержку для стороннего ПО, такого как Microsoft Windows и IIS. Если эти сведения не помогли устранить проблему, обратитесь в службу технической поддержки Microsoft или посетите веб-сайт поддержки Microsoft по адресу http://support.microsoft.com/.

Дополнительные сведения об ошибках 80004005 см. в статье «Руководство по устранению неполадок в случае появления ошибки 80004005 при работе со страницами ASP и компонентами Microsoft для доступа к данным (Q306518)» на веб-сайте корпорации Майкрософт по адресу: http://support.microsoft.com/default.aspx?scid=kb;ru-ru;Q306518.

[[Reference]80004005—Имя источника данных не найдено и драйвер по умолчанию не указан]

Эта ошибка возникает при попытке просмотра динамической страницы в веб-браузере или в режиме Live view. Сообщение об ошибке может отличаться в зависимости от вашей базы данных и веб-сервера. Другие варианты сообщения об ошибке включают:

  • 80004005 — Ошибка SQLSetConnectAttr драйвера

  • 80004005 — Общий сбой. Не удается открыть раздел реестра «DriverId»

    Далее перечислены возможные причины и способы решения.

  • Странице не удается найти имя DSN. Убедитесь, что DSN было создано и на веб-сервере, и на локальном компьютере.

  • Возможно, имя DSN задано как DSN пользователя, а не DSN системы. Удалите DSN пользователя и создайте вместо него DSN системы.

Если этого не сделать, дублирующиеся имена DSN вызовут новую ошибку ODBC.

Если используется приложение Microsoft Access, файл базы данных (MDB-файл) может быть заблокирован. Причина блокирования может заключаться в том, что DSN с другим именем уже использует базу данных. Откройте проводник Windows, в папке, в которой расположен файл базы данных (MDB-файл), найдите файл блокировки (LDB-файл) и удалите его. Если другое имя DSN указывает на один и тот же файл базы данных, удалите это имя, чтобы избежать ошибок в дальнейшем. Перезагрузите компьютер после внесения изменений.

[[Reference]80004005—Не удалось использовать «(неизвестно)»; файл уже используется]

Эта ошибка возникает при использовании базы данных Microsoft Access и попытке просмотра динамической страницы в веб-браузере или в режиме Live view. Другой вариант этого сообщения об ошибке: «80004005—Ядро базы данных Microsoft Jet не может открыть файл (неизвестно)».

Вероятная причина — проблема с разрешениями. Далее перечислены несколько конкретных причин и способов решения.

  • Учетная запись, используемая Internet Information Server (обычно IUSR), может не иметь правильных разрешений Windows для базы данных на основе файлов или для папки, содержащей файл. Проверьте разрешения учетной записи IIS (IUSR) в диспетчере пользователей.

  • Возможно, у вас нет разрешения на создание или удаление временных файлов. Проверьте разрешения для файла и папки. Убедитесь, что у вас есть разрешение на создание или удаление временных файлов. Временные файлы обычно создаются в той же папке, что и база данных, но файл также может быть создан в других папках, таких как /Winnt.

  • В Windows 2000 может потребоваться изменить значение времени ожидания для DSN базы данных Access. Чтобы изменить значение времени ожидания, выберите «Пуск» > «Настройки» > «Панель управления» > «Администрирование» > «Источники данных (ODBC)». Нажмите вкладку «Система», выделите правильный DSN и нажмите кнопку «Настройка». Нажмите кнопку «Параметры» и в поле «Время ожидания страницы» введите значение 5000.

    Если проблемы остаются, см. следующие статьи базы знаний Microsoft:

  • PRB: 80004005 «Не удалось использовать '(неизвестно)'; файл уже используется» по адресу http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174943.

  • ПРОБЛЕМА: Подключение к базе данных Microsoft Access не работает в Active Server Pages на http://support.microsoft.com/default.aspx?scid=kb;en-us;Q253604.

  • Статья: «Ошибка "не удается открыть неизвестный файл" при использовании Access» по адресу: http://support.microsoft.com/default.aspx?scid=kb;ru-ru;Q166029.

[[Справка]80004005—Ошибка входа в систему()]

Эта ошибка возникает при использовании Microsoft SQL Server и попытке просмотра динамической страницы в веб-браузере или в режиме Live View.

Эта ошибка создается SQL Server, если он не принимает или не распознает учетную запись или пароль для входа в систему (если вы используете стандартную безопасность) или если учетная запись Windows не сопоставлена с учетной записью SQL (если вы используете интегрированную безопасность).

Далее перечислены возможные решения.

  • Если вы используете стандартную безопасность, имя учетной записи и пароль могут быть неверными.Попробуйте использовать учетную запись системного администратора и пароль (UID = "sa" и без пароля), которые должны быть определены в строке подключения.(DSN не хранят имена пользователей и пароли.)

  • Если вы используете интегрированную безопасность, проверьте учетную запись Windows, вызывающую страницу, и найдите ее сопоставленную учетную запись SQL (если таковая имеется).

  • SQL Server не разрешает подчеркивание в именах учетных записей SQL.Если кто-то вручную сопоставляет учетную запись Windows IUSR_имякомпьютера с учетной записью SQL с тем же именем, это приведет к ошибке.Сопоставьте любую учетную запись, использующую символ подчеркивания, с именем учетной записи в SQL, которое не использует символ подчеркивания.

[[Справочная информация]80004005—Операция должна использовать обновляемый запрос]

Эта ошибка возникает, когда событие обновляет набор записей или вставляет данные в набор записей.

Вот возможные причины и решения:

  • Разрешения, установленные для папки, содержащей базу данных, слишком строгие.Привилегии IUSR должны быть установлены на чтение/запись.

  • Для файла базы данных не установлены полные права на чтение и запись.

  • База данных может находиться за пределами каталога Inetpub/wwwroot.Хотя вы можете просматривать и искать данные, вы не сможете обновить их, если база данных не находится в каталоге wwwroot.

  • Набор записей основан на необновляемом запросе. Соединения — хорошие примеры необновляемых запросов в базе данных.Реструктурируйте ваши запросы так, чтобы они были обновляемыми.

    Для получения дополнительной информации об этой ошибке см. «ПРОБЛЕМА: ASP 'Ошибка: запрос не является обновляемым' при обновлении записи таблицы» в базе знаний Microsoft на http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174640.

[[Справочная информация]80040e07—Несоответствие типа данных в выражении критерия]

Эта ошибка возникает, когда сервер пытается обработать страницу, содержащую серверное поведение Insert Record или Update Record, и серверное поведение пытается установить значение столбца Date/Time в базе данных Microsoft Access в пустую строку ("").

Microsoft Access имеет строгую типизацию данных; он накладывает строгий набор правил на значения определенных столбцов.Пустое строковое значение в SQL-запросе не может быть сохранено в столбце Date/Time Access. В настоящее время единственным известным обходным путем является избежание вставки или обновления столбцов Date/Time в Access пустыми строками ("") или любыми другими значениями, которые не соответствуют диапазону значений, указанному для данного типа данных.

[[Reference]80040e10—Слишком мало параметров]

Эта ошибка возникает, когда столбец, указанный в вашем SQL-запросе, не существует в таблице базы данных. Проверьте имена столбцов в таблице базы данных и сравните их с SQL-запросом.Причиной данной ошибки часто является опечатка.

[[Reference]80040e10—Неверное поле COUNT]

Эта ошибка возникает при предварительном просмотре страницы, содержащей серверное поведение Insert Record, в веб-браузере и попытке использовать его для вставки записи в базу данных Microsoft Access.

Возможно, вы пытаетесь вставить запись в поле базы данных, в имени которого есть знак вопроса (?). в его имени поля. Знак вопроса является специальным символом для некоторых механизмов баз данных, включая Microsoft Access, и не должен использоваться для имен таблиц базы данных или имен полей.

Откройте вашу систему базы данных и удалите знак вопроса (?) из имен полей и обновите серверные поведения на вашей странице, которые ссылаются на это поле.

[[Reference]80040e14—Синтаксическая ошибка в операторе INSERT INTO]

Эта ошибка возникает, когда сервер пытается обработать страницу, содержащую серверное поведение Insert Record.

Эта ошибка обычно возникает из-за одной или нескольких из следующих проблем с именем поля, объекта или переменной в базе данных:

  • В качестве имени использовано зарезервированное слово. Большинство баз данных имеют набор зарезервированных слов. Например, слово «date» является зарезервированным и, следовательно, не может быть использовано в именах столбцов базы данных.

  • В имени использованы специальные символы. Вот несколько примеров специальных символов:

    . / * : ! # & - ?

  • Имя содержит пробел.

    Подобная ошибка также может возникать, если для объекта в базе данных была определена маска ввода, но вставленные данные не соответствуют этой маске.

    Чтобы решить проблему, не используйте в именах столбцов базы данных зарезервированные слова, например «date», «name», «select», «select» и «level». Помимо этого, исключите пробелы и специальные символы.

    Списки зарезервированных слов для наиболее распространенных систем баз данных см. на следующих веб-страницах.

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

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

[[Reference]80040e21—Ошибка ODBC при Insert или Update]

Эта ошибка возникает, когда сервер пытается обработать страницу, содержащую серверное поведение Update Record или Insert Record. База данных не может обработать операцию обновления или вставки, которую пытается выполнить серверное поведение.

Вот возможные причины и решения:

  • Серверное поведение пытается обновить поле автономера таблицы базы данных или вставить запись в поле автономера. Поскольку поля автономера заполняются автоматически системой базы данных, любая попытка внешнего заполнения их значением завершается неудачей.

  • Данные, которые серверное поведение обновляет или вставляет, имеют неподходящий тип для поля базы данных, например вставка даты в логическое поле (да/нет), вставка строки в числовое поле или вставка неправильно отформатированной строки в поле Date/Time.

[[Reference]800a0bcd—BOF или EOF равно true]

Эта ошибка возникает при попытке просмотра динамической страницы в веб-браузере или в режиме Live view.

Проблема возникает, когда страница пытается отобразить данные из пустого набора записей. Для решения проблемы примените серверное поведение Show Region к динамическому контенту, который должен отображаться на странице, следующим образом:

Выделите динамический контент на странице.

В панели Server Behaviors нажмите кнопку «Плюс» (+) и выберите Show Region > Show Region If Recordset Is Not Empty.

Выберите набор записей, предоставляющий динамический контент, и нажмите OK.

Повторите шаги 1–3 для каждого элемента динамического контента на странице.

Устранение неполадок, связанных с сообщениями об ошибках MySQL

Одно из часто встречающихся сообщений об ошибке, с которым вы можете столкнуться при тестировании подключения базы данных PHP к MySQL 4.1: «Client does not support authentication protocol requested. Рассмотрите возможность обновления клиента MySQL.

Возможно, потребуется вернуться к более ранней версии MySQL или установить PHP 5 и скопировать некоторые библиотеки динамических связей (DLL). Подробные инструкции см. в разделе Настройка среды разработки PHP.