Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сводка
В этой статье показано, как убедиться, что драйвер Open Database Connectivity (ODBC) установлен, зарегистрирован и настроен правильно на компьютере Windows. Используйте его, если приложение не может подключиться к базе данных, если драйвер ODBC не отображается в администраторе источника данных ODBC или при получении ошибки Data source name not found and no default driver specified (SQLSTATE IM002). Этапы проверки охватывают 32- и 64-разрядные версии администратора источников данных ODBC, имя источника данных (DSN) и записи драйвера в реестре Windows, а также строку подключения, которую приложение передает диспетчеру драйверов ODBC.
Какую копию администратора источника данных ODBC следует открыть?
В 64-разрядных версиях Windows есть две копии администратора источника данных ODBC, а каждая копия управляет драйверами и системными DSN, которые соответствуют его битовости:
Для 64-разрядных приложений выберите Windows+ и введите ODBCAD32.EXE или C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.
Для 32-разрядных приложений выберите Windows+ и введите C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.
Оба исполняемых файла называются odbcad32.exe, поэтому путь к папке определяет, какой из них открыт. Всегда сопоставляйте инструмент с битами приложения, которое делает подключение. 32-разрядное приложение не может загрузить 64-разрядный драйвер ODBC, а 64-разрядное приложение не может загрузить 32-разрядный драйвер ODBC.
Примеры строк подключения ODBC
Приложения, обращающиеся к драйверу ODBC, могут использовать имена источников данных (DSN) или строки подключения без DSN. Ниже приведены некоторые примеры.
driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yesdsn=userdsn1dsn=test;uid=<user name>;pwd=<password>
Первый строка подключения явно указывает имя драйвера, имя сервера, имя базы данных и необходимость использования встроенной безопасности (trusted_connection). Это подключение без использования DSN.
Вторая и третья строки подключения используют DSN, который представляет собой инкапсуляцию этих элементов, хранящихся в реестре. Имя пользователя и пароль не могут храниться в dsN и должны быть явно указаны. Дополнительные сведения об атрибутах DSN см. в разделе Атрибут строки подключения DSN.
DSN — это средство, позволяющее приложениям загружать драйвер через дополнительный уровень косвенности. Используя DSN, вы можете изменить сервер, базу данных и даже тип базы данных, к которому приложение подключается без изменения приложения.
Имя драйвера в строка подключения должно соответствовать имени драйвера, зарегистрированного на компьютере. Имена драйверов и доменных имен не учитывает регистр, но орфографические и пунктуационные знаки должны совпадать точно. Если зарегистрированный драйвер не соответствует, диспетчер драйверов ODBC не может загрузить драйвер.
Примечание.
SQL Server Драйвер (sqlsrv32.dll), который поставляется с Windows и драйвером собственного клиента SQL Server (SQL Server Native Client 11.0) не рекомендуется для новой разработки.
SQL Server Native Client не входит в состав SQL Server 2022 (16.x) и более поздних версий, а также SQL Server Management Studio 19 и более поздних версий. Для новых подключений используйте драйвер ODBC Microsoft для SQL Server, который можно скачать для Windows, Linux и macOS.
Убедитесь, что драйвер и DSN отображаются в администраторе источника данных ODBC
Используйте администратора источника данных ODBC, чтобы проверить наличие драйверов и доменных имен ODBC. Откройте копию, соответствующую битности приложения, а затем проверьте вкладку "Драйверы" , чтобы узнать, указан ли драйвер. На следующих снимках экрана показаны 64-разрядные и 32-разрядные драйверы:
Если драйвер указан, создайте тестовую dsN на вкладке "Системное DSN " или "Имя пользователя DSN " и запустите тест подключения. Успешный тест подтверждает загрузку драйвера и доступ к серверу. Если драйвер не указан, переустановите драйвер и проверьте разделы реестра, как описано в следующем разделе.
Сведения в реестре о драйвере ODBC и DSN
Сведения о драйверах и dsN хранятся в реестре:
На 64-разрядных компьютерах перенаправление реестра отделяет 32-разрядную и 64-разрядную информацию для драйверов и системных доменных имен. В Wow6432Node записи реестра хранятся 32-разрядные сведения о драйвере и системном dsN. Пользовательские DSN не перенаправляются, поэтому и 32-, и 64-разрядные средства отображают все пользовательские DSN. Соответствующие ключи:
-
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC(64-разрядные драйверы и системные DSN) -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC(32-разрядные драйверы и системные DSN) -
HKEY_CURRENT_USER\Software\ODBC(Пользовательские DSN для текущего пользователя)
Подраздел ODBC.INI содержит список всех DSN и подразделов для каждого DSN. В подразделе ODBCINST.INI перечислены все драйверы.
Если возникла проблема при загрузке драйвера через DSN, проверьте подраздел ODBC.INI, чтобы определить, какой драйвер использует DSN.
Кроме того, убедитесь, что путь к драйверу, указанный в ODBCINST.INI, указывает на DLL-файл, который существует на диске. Запись реестра, ссылающаяся на отсутствующую или перемещенную библиотеку DLL, является распространенной причиной сбоев загрузки после удаления, обновления или очистки файла вручную. Сведения об именах файлов и путях установки драйвера Microsoft ODBC Driver for SQL Server см. в разделе Системные требования, установка и файлы драйвера.
Примечание.
Запись LastUser не влияет на строка подключения. Он используется только при тестировании dsN в администраторе источника данных ODBC.
Устранение ошибки IM002: имя источника данных не найдено и драйвер по умолчанию не указан
Проверьте имя сервера, имя базы данных и установлен ли драйвер. Если драйвер не удается загрузить, вы получите следующее сообщение об ошибке:
ERROR [IM002] [Microsoft][ДИСПЕТЧЕР драйверов ODBC] Имя источника данных не найдено и драйвер по умолчанию не указан.
Эта ошибка означает, что диспетчеру драйверов ODBC не удалось определить DSN или имя драйвера в строке подключения. Проверьте следующие элементы в порядке:
- Имя DSN в строка подключения соответствует имени DSN, указанному в администраторе источника данных ODBC.
- Установлен драйвер соответствующей разрядности. Пользовательский DSN отображается как в 32-разрядной, так и в 64-разрядной версии средства, но подключение завершается ошибкой, если драйвер, на который он ссылается, не установлен для разрядности приложения. Дополнительные сведения см. в разделе "Администратор ODBC", где отображаются 32-разрядные и 64-разрядные доменные имена пользователей.
- Системный DSN был создан в инструменте, который соответствует разрядности приложения. Системные DSN перенаправляются в реестре, поэтому системный DSN, созданный в 64-разрядном средстве, недоступен для 32-разрядного приложения.
- Область DSN соответствует учетной записи, которая запускает приложение. Пользовательский DSN в разделе
HKEY_CURRENT_USERнедоступен службе, которая работает под другой учетной записью. Используйте System DSN для служб и веб-приложений. - Имя драйвера в строке подключения без DSN соответствует драйверу, указанному в подразделе
ODBCINST.INI.
Даже если путь к драйверу в DSN указан неверно, диспетчер драйверов всё равно может найти его в подразделе ODBCINST.INI по имени драйвера, указанному в разделе реестра ODBC Data Sources.
Если драйвер загружает, но подключение по-прежнему завершается сбоем, проблема обычно связана с сетью, проверкой подлинности или шифрованием, а не проблемой установки. Сведения об этих симптомах см. в разделе "Устранение неполадок с подключением в SQL Server".
Поддержка драйверов ODBC, отличных от Microsoft
Для драйверов ODBC, отличных от Microsoft, поддержка Microsoft ограничена следующими действиями:
- Проверьте наличие ключей реестра драйвера. Если это не так, переустановите драйвер или обратитесь к поставщику.
- Проверьте, указывают ли пути на файл DLL, который существует. Если это не так, переустановите драйвер или обратитесь к поставщику.
- Создайте тестовую dsN и выполните тест подключения.
- Помогите собрать трассировку Process Monitor (Procmon), чтобы поставщик мог её проанализировать.
Поведение драйвера, дефекты драйверов и логика установки драйверов остаются ответственностью поставщика, создавшего драйвер.
Отказ от ответственности за информацию третьих лиц
Сторонние продукты, о которых говорится в этой статье, производятся компаниями, не зависящими от Microsoft. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, о надежности или производительности этих продуктов.