При настройке таблиц внешних источников данных в платформе 1С разработчики нередко сталкиваются с ошибкой ODBC:SQLSTATE HY000 с кодом 2003. Данная ошибка генерируется драйвером MySQL и означает CR_CONN_HOST_ERROR (Can't connect to MySQL server). Это говорит о том, что платформа 1С даже не дошла до проверки учетных данных (логина и пароля), так как не смогла установить сетевое TCP-соединение с удаленным сервером баз данных.
Разберем по шагам причины возникновения этой неполадки и методы ее устранения.
Прежде чем менять настройки в конфигураторе 1С, выясним, доступен ли удаленный сервер в принципе с рабочего места или сервера 1С. Для этого рекомендуется использовать автономные клиенты или системные утилиты:
3306. Проверим доступность сокета с помощью PowerShell:
Test-NetConnection -ComputerName 94.249.146.189 -Port 3306
Если результат проверки возвращает TcpTestSucceeded : False, соединение блокируется сетевыми экранами либо служба СУБД отключена.
Проанализируем конфигурацию сервера, к которому выполняется подключение:
my.cnf или my.ini) параметр bind-address часто по умолчанию равен 127.0.0.1. Это запрещает любые внешние подключения. Для приема внешних соединений необходимо указать 0.0.0.0 или конкретный сетевой IP-адрес интерфейса.3306 должны быть разрешены в файрволе сервера (iptables, ufw, Windows Firewall) и на уровне сетевого провайдера/хостинга.'users'@'%' или 'users'@'ip_адрес_1С'), а не только для 'localhost'.В строках подключения часто фигурирует устаревший драйвер MySQL ODBC 3.51 Driver. Он не поддерживает современные методы шифрования паролей и актуальные версии протокола MySQL 8.x. Рекомендуется установить драйверы серии MySQL Connector/ODBC 8.0 (или 5.3) в варианте Unicode Driver.
Критически важный момент — разрядность:
C:\Windows\SysWOW64\odbcad32.exe).C:\Windows\System32\odbcad32.exe).Рассмотрим правильное формирование строки подключения в объекте 1С ВнешнийИсточникДанных. При использовании прямого соединения без предварительного создания DSN строка должна выглядеть следующим образом:
DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=94.249.146.189;PORT=3306;DATABASE=users;UID=username;PWD=password;OPTION=3;CHARSET=utf8;
Для повышения стабильности работы рекомендуется создать Системный DSN (System DSN) в диспетчере источников данных ODBC Windows:
MySQL ODBC 8.0 Unicode Driver, задаем имя источника (например, MySQL_Users), вводим параметры сервера и нажимаем кнопку Test.
DSN=MySQL_Users;UID=username;PWD=password;
Если использование внешних источников данных по каким-либо причинам ограничено политиками безопасности, рассмотрим альтернативные методы взаимодействия с удаленной базой:
COMОбъект("ADODB.Connection").HTTPСоединение с передачей структур в формате JSON.