Имя: Пароль:
1C
1С v8
Беда с подключением к MySQL из 1С через ODBC
0 mixqn
 
12.11.12
16:53
Ситуация примерно следующая: есть некая обработка, скачивающая через ODBC данные из базы на MySQL в 1С. И все это дело прекрасно работало до какого-то момента, потом поломалось. Что такого сделали, что оно поломалось, клиенты не сознаются.
Что есть на данный момент и что было сделано чтобы полечить.
Попытка соединения вызывает исключение с описанием ошибки «Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию»
В сети по поводу этой проблемы найдено только 2 возможных варианта:
1. Проблема с драйвером
2. Проблема со строкой подключения
Причина 1 по всей видимости отпадает. Драйвер мало того, что уже был установлен и MySQL-ная софтина проверки показывала, что соединение с базой есть (то есть драйвер рабочий), так я еще для надежности заставил их скачать при мне нужную версию с официального сайта и при мне же драйвера были переустановлены и на серваке и на машине (для надежности), с которой осуществляется попытка соединения. Короче говоря драйвер должен быть рабочим.
По поводу причины 2: в процессе поиска инфо по теме я нашел вот такую вот страничку www.connectionstrings.com/... перепробовал все основные варианты оттуда (хотя по сути дела, вариант то один, там если присмотреться, отличий очень мало) - не помогло.
Еще из идей был вариант, что проблема может как-то быть связана с тем, что база 1С серверная. Чтобы и это исключить создал пустую базу на клиенте, в ней обработку для тестирования соединения. Не помогло. Результат тот же.


Есть идеи?
1 shuhard
 
12.11.12
16:56
(0)[ Источник данных не найден]
и нет драйвера ODBC две большие разницы
2 mixqn
 
12.11.12
16:56
(1) допустим
что делать?
3 acsent
 
12.11.12
16:57
на сервере дрова установили?
4 shuhard
 
12.11.12
16:58
(2) форуму предлагается угадать по какой технологии идёт связь с сиквелом ?
5 mixqn
 
12.11.12
16:59
(3) да
(4) ADODB
6 shuhard
 
12.11.12
17:02
(5) код в студию
7 shuhard
 
12.11.12
17:02
(6) ну и конечно результат работы udl файлика положительный ?
8 zulu_mix
 
12.11.12
17:03
(7) да они похож через удл и лазили
9 mixqn
 
12.11.12
17:04
Попытка
   оСоединение = Новый COMОбъект("ADODB.Connection");
Исключение
   Сообщить(ОписаниеОшибки());
   Возврат;
КонецПопытки;

СтрокаСоединения = "Driver=MySQL ODBC 5.1 Driver;Server="+ИмяСервера+";Database="+ИмяБД+";uid="+ИмяПользователяБД+";Pwd="+ПарольПользователяБД+";";
оСоединение.ConnectionString = СтрокаСоединения;

Попытка
   оСоединение.Open();//СтрокаСоединения
   Сообщить("ОК");
Исключение
   Сообщить(ОписаниеОшибки());
   Сообщить(СтрокаСоединения);
   Сообщить(оСоединение.ConnectionString);
КонецПопытки;
10 shuhard
 
12.11.12
17:04
(8) мсье знает толк в гнусных извращениях
11 mixqn
 
12.11.12
17:06
(7) можно чуть подробнее? что есть udl?
12 shuhard
 
12.11.12
17:07
(11) сделай текстовый файл
смени расширение
щёлкни по нему
получишь оболочку для тестирования ADODB
13 mixqn
 
12.11.12
17:12
(12) сделал
Результат: сообщение
"[DBNETLIB][ConnectionOpen(Connect()).]SQL Server не существует, или доступ запрещен"
14 shuhard
 
12.11.12
17:14
(13) нужна помощь форума ?
15 shuhard
 
12.11.12
17:17
(14) и контрольный выстрел, провайдер конечно был выбран for ODBC ?
16 ice777
 
12.11.12
17:18
(13) бгг. вроде все по русски написано..)
17 kokamoonga
 
12.11.12
17:35
(13) скорее всего юзеру от имени которого ты пытаешься подключаться запрещен удаленный доступ. это самая частая причина непоняток
18 sikuda
 
12.11.12
17:41
1. Проверить установлен ли драйвер. Переустановить если возможно.

2. у нас строка соединения типа
СтрокаСоединения = "{Driver=MySQL ODBC 5.1 Driver};Server="+ИмяСервера+";Database="+ИмяБД+";uid="+ИмяПользователяБД+";Pwd="+ПарольПользователяБД+";";
19 kokamoonga
 
12.11.12
17:42
(9)(17)+ и драйвер все же в фигурных скобках. может оно и неважно, но...

Driver={MySQL ODBC 5.1 Driver}
20 mixqn
 
12.11.12
18:17
(18)
драйвер переустанавливали
строку соединения такую пробовал, не помогло
(19) было и в фигурных
21 kokamoonga
 
12.11.12
19:13
(20) доступ у юзера есть?
22 Fragster
 
гуру
12.11.12
19:33
создаешь пустой файл .udl, открываешь 2м кликом, заполняешь, тестишь, сохраняешь, открываеьш блокнотом - вот и есть искомая строка.
23 mixqn
 
13.11.12
11:44
(21) каким образом это проверить?
В теме в общем описано, что мы делали.
Под ровно этими же параметрами (сервер, база, логин, пароль) нормально срабатывает подключение через MySQL-ную софтину входящую в состав драйвера ODBC - если открыть список драйверов ODBC, открывается окно проверки соединения, туда вводятся данные, жмется кнопка Test, затем выдается модальное окошко "Test result" с  текстом "Connection successful".
Далее. Под этим же пользователем работает подключение самой программы (комендант называется), база данных которой хранится на MySQL.

Проверка файлом udl дала результат (13)

Вопросы:
1) что конкретно означает сообщение (13), какие могут быть варианты
2) если один из вариантов - права доступа (судя по тексту сообщения (13)), то как еще их надо проверить/настроить, учитывая все вышесказанное?
24 Fragster
 
гуру
13.11.12
12:18
(23) firewall - проверяешь telnetом коннект на порт (какой там порт у мускуля не помню), если коннект проходит - значит права доступа мускуля надо крутить
25 Fragster
 
гуру
13.11.12
12:19
или просто служба мускуля остановлена
26 BigHarry
 
13.11.12
12:19
В конфиг мыскля в секцию директив сервера внесите
skip-grant-tables
рестартаните мыскля и попробуйте опять. Если все пойдет - значит с правами затычка.
27 Fragster
 
гуру
13.11.12
12:19
у мускульная софтина может не через tcp-ip работать, а по named pipes, например
28 BigHarry
 
13.11.12
12:21
(27) По намед пайпс он не работает, под юникс-сокет - работает, но уже не на венде...
29 Fragster
 
гуру
13.11.12
12:23
(28) ну я хз, что там у автора. сеть проверяется телнетом, коннект идет - значит - права
30 kokamoonga
 
14.11.12
01:50
(23) недавно подобная тема перетиралась v8: Не коннектится к MySQL Базе

проверить права в любой программе администрирования MySQL коих тыщщи. хостинги стандартно комплектуются phpmyadmin, под винду могу посоветовать dbForge Studio for MySQL (http://www.devart.com/dbforge/mysql/studio/). можно и в консоли если есть желание поизучать синтаксис команд MySQL http://citforum.ru/database/mysqldoc/mysqldoc_02.shtml  

но судя по тому что ты говоришь права у пользователя есть. тогда либо ты что-то недоговариваешь, либо какие-то чудеса.

давай-ка полный конфиг в студию. на чем крутится 1с, на чем крутится MySQL. где сервера относительно друг друга, сколько тысяч файерволов между ними.

бывают например проблемы совместимости драйверов ODBC 32/64 бита. вобщем рассказывай подробнее.

конфиг-файл MySQL тоже бы не помешал. это чтобы посмотреть на каких интерфесах MySQL слушает. может у тебя там bind-address    = 127.0.0.1, из описания непонятно откуда и куда идет доступ
31 kokamoonga
 
14.11.12
01:53
(30)+ ах да... версия установленного драйвера и версия сервера MySQL
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой