Источник данных не найден и драйвер по умолчанию не указан

Обновлено: 21.11.2024

В Linux и UNIX источники данных SYSTEM обычно определяются в файле /etc/odbc.ini. Источники данных USER определены в ~/.odbc.ini.

В Windows источники данных создаются в Microsoft ODBC Administrator. Доступные источники системных данных перечислены на вкладке System DSN. Источники пользовательских данных, доступные для текущего пользователя, вошедшего в систему, перечислены на вкладке Пользовательский DSN.

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

В Linux и UNIX вам необходим доступ для чтения к INI-файлу, содержащему источник данных.

В Windows учетная запись пользователя, которая пытается получить доступ к источнику данных, должна иметь достаточные разрешения для чтения раздела реестра, в котором хранится источник данных. Источники системных данных хранятся в разделе HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI. Источники пользовательских данных хранятся в разделе HKEY_CURRENT_USER\Software\ODBC\ODBC.INI.

Возможно, вам потребуется установить ODBCSYSINI , ODBCINSTINI или ODBCINI . Дополнительные сведения см. в разделе ODBC для Linux/UNIX.

Источники пользовательских данных определяются для конкретного пользователя.

Диспетчер драйверов ODBC использует атрибут Driver, чтобы узнать, какой драйвер ODBC следует загрузить.

В Linux и UNIX для отображения списка установленных драйверов введите odbcinst -q -d .

В Windows на вкладке "Драйверы" в Администраторе ODBC перечислены установленные драйверы.

Удаленный источник данных, указанный в источнике данных клиента ODBC-ODBC Bridge (значение атрибута TargetDSN), должен существовать на компьютере (или компьютерах), указанном с помощью атрибута ServerPort.

    Вы пытаетесь использовать источник данных User ODBC. Это будет успешным только в том случае, если экземпляр SQL Server работает под той же учетной записью пользователя, которая использовалась для создания источника данных. В противном случае вместо этого необходимо использовать источник данных System ODBC.

Применимо к
  • Продукты
    • Драйвер Easysoft ODBC-Oracle
    • Шлюз Easysoft dbExpress-ODBC
    • Драйвер Easysoft ODBC-InterBase
    • Сервер Easysoft XML-ODBC
    • Шлюз Easysoft ODBC-JDBC
    • Драйвер Easysoft ODBC-Sybase
    • Мост Easysoft ODBC-ODBC
    • Мост Easysoft JDBC-ODBC
    • Драйвер Easysoft ODBC-Firebird
    • Драйвер разработчика Easysoft ODBC-LINC
    • Драйвер Easysoft ODBC-ISAM
    • Драйвер Easysoft ODBC-Sage Tetra CS/3
    • Драйвер Easysoft ODBC-Zortec System Z
    • Система соединения Easysoft ODBC-ODBC
    • Драйвер Easysoft ODBC-RMS
    • Драйвер Easysoft ODBC-CODA
    • Драйвер сервера Easysoft ODBC-SQL
    • Драйвер Easysoft ODBC-Oracle WP
    • Драйвер Easysoft ODBC-Access
    • Драйвер Easysoft ODBC-DB2
    • Драйвер Easysoft ODBC-Derby
    • Драйвер Easysoft ODBC-Salesforce
    • Драйвер Easysoft ODBC-MongoDB
    • Драйвер Easysoft ODBC-Google Analytics
    • Драйвер Easysoft ODBC-MySQL
    • Драйвер Easysoft ODBC-QuickBooks для настольных ПК
    • Драйвер Easysoft ODBC-PostgreSQL

    Отзывы о базе знаний

    Oracle — зарегистрированная торговая марка корпорации Oracle и/или ее дочерних компаний.

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

    Сообщение об ошибке [DataDirect][ODBC lib] Имя источника данных не найдено и драйвер по умолчанию не указан
    [INTERSOLV][ODBC lib] Имя источника данных не найдено и драйвер по умолчанию не указан
    [MERANT][ODBC lib] Имя источника данных не найдено и драйвер по умолчанию не указан
    >[Microsoft][Диспетчер драйверов ODBC] Имя источника данных не найдено и драйвер по умолчанию не указан
    [DataDirect][драйвер протокола ODBC Informix Wire Protocol]Отказ в подключении. Проверьте имя хоста и номер порта
    • Неверный исполняемый файл приложения и формат ссылки (ELF).
    • Ошибка в DSN или драйвере
    • Недопустимая или отсутствующая конфигурация среды.

    Неверный исполняемый файл приложения и формат ссылки (ELF)

    Важно, чтобы формат исполняемого файла и компоновки драйвера ODBC (ELF) был таким же, как у приложения. Другими словами, 32-разрядный драйвер необходим для использования с 32-разрядным приложением или 64-разрядный драйвер для 64-разрядного приложения.

    Если они не совпадают, можно настроить DSN для 32-разрядного драйвера, и при попытке использовать этот DSN в 64-разрядном приложении DSN не будет найден, поскольку реестр содержит Информация о DSN в разных местах в зависимости от ELF (32-разрядная версия или 64-разрядная версия).

    Ошибка в DSN или драйвере

    Это может произойти из-за недопустимого имени источника данных или имени драйвера (например, из-за опечатки в имени источника данных в файле odbc.ini или строку подключения в приложении)

    Убедитесь, что имя источника данных ODBC в строке подключения совпадает с именем существующего источника данных ODBC.

    DSN содержит специальные символы.​

    Согласно спецификации ODBC, DSN не должен содержать символы []<>(),;?*=!@, а значение ключевого слова DSN не может состоять только из пробелов. Из-за грамматики реестра ключевые слова и имена источников данных не могут содержать символ обратной косой черты (\).

    Недопустимая или отсутствующая конфигурация среды

    Возможно, среда настроена неправильно (например, если находится неверный файл odbc.ini или есть ошибка в структуре odbc.ini).

    Выполните следующие действия, чтобы проверить конфигурацию.

    <р>
    1. Для приложений, работающих в Windows

    Если приложение работает как служба в Windows (например, Microsoft Internet Information Server IIS), создайте имя источника данных ODBC SYSTEM (вместо USER), чтобы источник данных был доступен для всех пользователей в системе.< /p>

    При работе на 64-разрядных компьютерах Windows обязательно установите и настройте 32-разрядный драйвер при использовании 32-разрядных приложений и 64-разрядный драйвер при использовании 64-разрядных приложений.
    32-разрядная версия файла средства администрирования ODBC (odbcad32.exe) находится в папке %systemdrive%\Windows\SysWoW64.
    64-разрядная версия файла инструмента администратора ODBC (также называемого odbcad32.exe) находится в папке %systemdrive%\Windows\System32.

    <р>2. Для приложений, работающих в Unix/Linux:

    Убедитесь, что переменная среды ODBCINI (или ODBC_INI, или SHADOW_INI) указывает на правильный файл odbc.ini (или shadow.ini), в котором определен источник данных ODBC. Например:
    экспорт ODBCINI=/opt/odbc32v53/odbc.ini

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

    Добавьте раздел [Источники данных ODBC] в файл odbc.ini, в котором перечислены имена источников данных и соответствующее описание драйвера. Например:

    [Источники данных ODBC]
    Проводной протокол DB2=DataDirect 5.3 Проводной протокол DB2
    datasourcename=описание драйвера

    Добавьте имя источника данных ODBC между квадратными скобками в файле odbc.ini и убедитесь, что есть строка для драйвера. Каждая опция должна быть указана в отдельной строке. Например:

    [MYDATASOURCENAME]
    Driver=/home/support/soft/odbc32v53/lib/ivdb223.so
    otheroption=optionvalue

    Убедитесь, что после параметров HostName, PortNumber или Password в источнике данных ODBC отсутствуют лишние пробелы.
    Выполните следующую команду UNIX/Linux, чтобы убедиться, что формат строки в odbc.ini соответствует формату Стиль UNIX, а не стиль Windows/DOS.
    dos2unix odbc.ini

    ПРИМЕЧАНИЕ. Используйте пример инструментов и demoodbc, которые поставляются с программным обеспечением Connect и SequeLink, для проверки подключения ODBC вне приложения.

    <р>3. Для пользователей SequLink:

    Источником ошибки может быть клиент ODBC SequeLink или сервер SequLink.

    Когда появляется сообщение об ошибке "[DataDirect][ODBC lib] Имя источника данных не найдено и не указан драйвер по умолчанию". проблема связана с клиентом SequLink ODBC. Выполните шаги 1 и 2 выше.

    Когда появляется сообщение об ошибке "[DataDirect][драйвер ODBC SequeLink][сокет ODBC][DataDirect][библиотека ODBC] Имя источника данных не найдено и драйвер по умолчанию не указан", проблема связана с сервером SequeLink для сокета ODBC и/ или конфигурация драйвера ODBC на сервере SequLink

    Убедитесь, что соединение ODBC, используемое сервером SequeLink для сокета ODBC, работает нормально. Например, используйте инструмент «пример», который поставляется с драйверами DataDirect Connect для ODBC, чтобы гарантировать отсутствие ошибок при подключении к источнику данных ODBC.

    При успешном подключении ODBC, используемом сервером SequeLink для сокета ODBC, с помощью инструмента тестирования убедитесь, что переменная расширенного источника данных службы SequeLink ODBC Socket Server DataSourceSOCODBCConnStr указывает на правильное имя источника данных ODBC SYSTEM (не USER). Например:

    DataSourceMSSODBCConnStr=DSN=имя_источника_данных;
    UID=имя_пользователя;
    PWD=пароль

    Чтобы использовать соединение без DSN, убедитесь, что значение с учетом регистра, указанное в части Driver=, не содержит пробелов. Например:
    DataSourceMSSODBCConnStr=Driver=;Database=C:\mydata

    В UNIX/Linux убедитесь, что следующие служебные переменные SequeLink ODBC Socket Server установлены правильно:

    ServiceEnvironmentVariable ISLVINI=/opt/slserverxx/ipe
    ServiceEnvironmentVariable ODBCINI=/opt/odbcxx/odbc.ini
    ServiceEnvironmentVariable SHLIB_PATH=/opt/odbcxx/lib:/opt/slserverxx/bin

    <р>4. При использовании сторонних драйверов ODBC

    В UNIX/Linux: обратитесь к документации по ODBC драйвера стороннего производителя и обратитесь за поддержкой к стороннему поставщику драйвера ODBC.
    Если проблема связана с диспетчером драйверов DataDirect, обратитесь за поддержкой в ​​Progress Software, как описано в разделе Как связаться со службой технической поддержки Progress DataDirect.

    (2021-Oct-31) Очень короткий пост в блоге, просто напоминание самому себе, но если вы когда-нибудь пытались подключиться к базе данных PostgreSQL с помощью интерфейса ODBC (знаю, это уже звучит как очень интересная задача: - ), то вы могли получить следующее сообщение об ошибке: «ОШИБКА [IM002] [Microsoft][Диспетчер драйверов ODBC] Имя источника данных не найдено и драйвер по умолчанию не указан».

    Я признаю, что мой онлайн-поиск этого сообщения об ошибке быстро показал ресурсы Microsoft и Stackoverflow, что все же немного смутило меня и не помогло решить мою проблему с подключением к ресурсу PostgreSQL через ODBC:

    Microsoft в своей документации по SSIS предоставила очень хорошее объяснение того, как подключиться к источнику данных PostgreSQL, и даже поделилась примером строки подключения с драйвером PostrgreSQL ODBC:

    ;База данных= ;UID= ;PWD=

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

    Еще одна вещь меня озадачила, и я захотел ее попробовать. Если я посмотрю на список 64- или 32-разрядных подключений ODBC PostgreSQL, которые я сделал, он не согласуется с тем, что я прочитал в той технической статье Microsoft.

    Мой список драйверов был другим по сравнению с этой технической статьей, и изменить имена этих драйверов, чтобы они соответствовали «Драйверу ODBC PostgreSQL (UNICODE)», было не в моих силах.

    Итак, я решил изменить свое подключение на этот формат: «Driver=;Server= ;Port=

    ;База данных= ;UID= ;PWD=

    », как и в списке драйверов, которые у меня были; Я тестировал его как с 64-битными, так и с 32-битными драйверами. И только тогда это сработало, и я смог подключиться к своему экземпляру PostgreSQL. Это не означает, что это соглашение об именах будет работать при любых обстоятельствах: драйвер ODBC может быть модифицирован новыми версиями или некоторые другие факторы могут изменить путь успешного подключения к данным. Мир меняется!

    Я до сих пор помню рекомендации Илона Маска сделать бизнес-требования менее тупыми, потому что это может быть опасно, если умный человек дал вам требования, а вы можете не задавать им достаточно вопросов.

    Не поймите меня неправильно, я никого не виню. Это только подтвердило тот факт, что доверять можно, но стоит протестировать и проверить. Очередной урок для меня и не новый :-)

    2.10 Ошибка ODBC «Имя источника данных не найдено и драйвер по умолчанию не указан» в Windows x64

    При попытке использовать ODBC для подключения к базе данных в Windows x64 в журнале появляется следующая ошибка:

    15 окт. 2018 г. 18:18:27 Подключение к источнику данных ODBC MYDBMS.
    >>> IM002/0: [Microsoft][Диспетчер драйверов ODBC] Имя источника данных не найдено и
    драйвер по умолчанию не указан
    >>> 08003/0: [Microsoft][Драйвер ODBC Диспетчер] Соединение не открыто
    15 окт. 2018 г., 18:18:27 >>> Ошибка X'0100003B' при открытии списка СУБД
    15 окт. 2018 г., 18:18:27 -> Уровень серьезности: Ошибка
    15 Окт 2018 18:18:27 -> Объект: Интерфейс СУБД
    15 Окт 2018 18:18:27 -> Аннотация: Ошибка SQL

    Мы используем те же настройки ODBC_*, которые работали на нашем 32-разрядном сервере (или мы правильно настроили LISTSERV для связи с ODBC).

    ПРИМЕЧАНИЕ. Этот FAQ больше предназначен для 32-разрядной версии LISTSERV, работающей под 64-разрядной версией Windows. Поскольку L-Soft больше не предоставляет 32-разрядную версию LISTSERV, маловероятно, что пользователи текущей поддерживаемой версии заметят эту проблему; но поскольку Windows Server 2016 обеспечивает легкий доступ к ОБОИМ администраторам 32- и 64-разрядных ODBC, мы пока оставляем его.

    В системе x64 существует две версии инструмента «Администратор источника данных ODBC»: одна версия для 64-разрядной версии и одна версия для 32-разрядной версии. При создании источника данных вы должны позаботиться об использовании правильного инструмента в отношении того, какие клиентские программы будут использовать источник данных. То есть, если 32-разрядной программе требуется доступ к источнику данных, вы должны создать этот источник данных с помощью 32-разрядной версии инструмента.

    К сожалению, ярлык инструмента, который вы можете найти в обычном месте в «Панели управления» -> «Инструменты администрирования», указывает на 64-битную версию инструмента без даже намека на то, что тоже другая версия.32-разрядная версия находится в специальной подпапке папки Windows.

    Итак, в зависимости от того, какой источник данных вам нужен (для 64-битного или 32-битного доступа), вы должны использовать любой из этих двух:

    Для 64-битного доступа :
    %SystemRoot%\system32\odbcad32.exe
    (или просто используйте ярлык в "Панели управления" -> "Инструменты администрирования")

    Для 32-разрядной версии: < br />%SystemRoot%\SysWOW64\odbcad32.exe

    (Обратите внимание, что оба файла имеют одинаковое имя "odbcad32.exe", даже 64-битная версия - разница в двух файлах заключается в их расположение, где снова сбивает с толку то, что инструмент для 32-разрядных источников данных находится в папке с именем «SysWOW64». )

    Для пользователей 32-разрядного LISTSERV решение состоит в том, создайте источник данных как 32-разрядный источник данных с помощью «скрытого» 32-разрядного инструмента ODBC (который, как отмечалось выше, больше не является скрытым в Windows Server 2016).

    Читайте также: