Источник данных не найден и драйвер по умолчанию не указан
Обновлено: 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-разрядных приложений.
<р>2. Для приложений, работающих в Unix/Linux:
32-разрядная версия файла средства администрирования ODBC (odbcad32.exe) находится в папке %systemdrive%\Windows\SysWoW64.
64-разрядная версия файла инструмента администратора ODBC (также называемого odbcad32.exe) находится в папке %systemdrive%\Windows\System32.Убедитесь, что переменная среды 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
<р>4. При использовании сторонних драйверов ODBC
ServiceEnvironmentVariable ODBCINI=/opt/odbcxx/odbc.ini
ServiceEnvironmentVariable SHLIB_PATH=/opt/odbcxx/lib:/opt/slserverxx/binВ 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).Читайте также: