Решён
1С Внешние источники данных: как установить драйвер MySQL и активировать ODBC?

Добрый день.

Пытаюсь подключить внешний источник данных к базе 1С:Предприятие 8.3.22 (конфигурация УТ 11.5). Источник - MySQL 8.0.36 на отдельном сервере Ubuntu 22.04.

В конфигураторе создал внешний источник данных, указал строку подключения ODBC. При попытке проверить подключение получаю:

Ошибка при вызове метода контекста (ПроверитьПодключение)
Connector error: [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

На сервере 1С (Windows Server 2019) установил MySQL ODBC 8.0 Connector, в ODBC Data Sources (64-bit) источник вижу. Но из 1С не видит. Подозреваю проблему с разрядностью, но не уверен. Что делать?

UPDATE: Помогло решение про 32-битный коннектор. Поставил MySQL ODBC 8.0 Connector именно 32-bit версию, создал DSN в ODBC Sources (32-bit) - и 1С увидела источник. Спасибо всем!
Решение
70
Эксперт • 1 ответ

Классика. 1С-сервер работает в 32-битном режиме даже на 64-битной Windows. Ты поставил 64-битный ODBC коннектор и создал DSN в 64-битном менеджере - 1С его просто не видит.

Решение:

  1. Скачай MySQL ODBC Connector именно 32-bit версию с официального сайта MySQL.
  2. Установи рядом с 64-битным (они не конфликтуют).
  3. Открой ODBC Data Sources через C:WindowsSysWOW64odbcad32.exe - это 32-битный менеджер.
  4. Создай там новый System DSN с тем же коннектором.
  5. В строке подключения 1С используй имя этого DSN.

Проверить что используешь правильный файл: в Пуск ищи "ODBC Data Sources (32-bit)" - это отдельный пункт меню.

Аватар Виктор Кузнецов

Точно это! Запустил odbcad32.exe из SysWOW64 и увидел что там вообще пусто было. Ставлю 32-бит коннектор, отпишусь.

17
Эксперт • 1 ответ

Разрядность - да, это оно. Но проверь еще строку подключения. Для внешних источников данных в 1С она должна быть в формате:

DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=192.168.1.100;PORT=3306;DATABASE=mydb;USER=user1;PASSWORD=pass;

Если используешь имя DSN то просто DSN=МойИсточник;. Некоторые версии платформы капризничают к регистру ключей в строке.

12
Эксперт • 3 ответа

Также проверь что на сервере MySQL разрешены подключения с IP сервера 1С. Типичная ошибка: файрвол или bind-address в my.cnf стоит на 127.0.0.1. Команда для проверки:

SELECT host, user FROM mysql.user WHERE user = 'твой_юзер';

Должен быть хост % или конкретный IP сервера 1С, а не localhost.

7
Участник • 2 ответа

Столкнулся с похожим на 8.3.20 год назад. У нас дополнительно оказалось что нужно было прописать путь к библиотеке коннектора в PATH системных переменных Windows на сервере 1С. Без этого DSN создавался но при реальном подключении из платформы падал с другой ошибкой.

2
Эксперт • 1 ответ

У меня такая же ошибка вылезает но у меня PostgreSQL а не MySQL... тоже IM002. Тоже разрядность?

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.