Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
1

Подключение драйвера ODBC mySQL (источник данных не найден)

17.04.2012, 03:32. Показов 60742. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При попытке подключения к драйверу через Excel (Данные -> источник внешних данных) получаю "В указанном DSN архитектура приложения не соответствует друг другу".
Если через VBA, то ошибка "Источник данных не найден и не указан драйвер, используемый по-умолчанию".

Вся информация о проведенных настройках на скриншотах.
ОС: Windows 7 x64.
MySQL 5.5 x32, user: root, pass: 333. Имя базы данных: testme.
Query Browser подключается без ошибок.
Драйвер mysql-connector-odbc-5.1.10-winx64.

Что я упускаю?
Миниатюры
Подключение драйвера ODBC mySQL (источник данных не найден)   Подключение драйвера ODBC mySQL (источник данных не найден)   Подключение драйвера ODBC mySQL (источник данных не найден)  

Подключение драйвера ODBC mySQL (источник данных не найден)  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2012, 03:32
Ответы с готовыми решениями:

Подключение драйвера ODBC mySQL
Добрый день. помогите начинающему. есть сервер с IP адресом 10.90.1.23 на котором установлен...

Как программно зарегестрировать новый источник данных(ODBC)?
Пишу прогу на Делфе, для доступа к данным использую ADO, при этом надо залазить в Источники...

Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так...

Не могу создать локальное подключение ODBC к mysql через Foxpro
Доброе время суток!) Пишу базу данных на Foxpro. Нужно, чтобы база брала с локального сервера...

11
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
17.04.2012, 09:24 2
Могу помочь только с помощью поиска Гугла. Я, к сожалению, обо всем этом имею довольно поверхностное преставление на уровне Advanced User.
0
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
18.04.2012, 20:25  [ТС] 3
Актуально... ищу специалистов, которые успешно связывали MS.Driver с мускулом у себя на хоум.машине.
0
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
28.04.2012, 01:41  [ТС] 4
Тема привязана к разделу фриланса.

Дополнительные данные по сути топика:
Не знаю какие библиотеки подключать...
Сейчас подключена Microsoft ActiveX Data Objects 2.8 Library
Настраивал по гайду отсюда.
Часть параметров подключения смотрел здесь.

Есть ли у кого навыки подключения в обход ODBC, например через libmySQL.dll ?

Добавлено через 1 час 11 минут
Может попробовать со старым драйвером (3.51) ?

Добавлено через 6 часов 5 минут
Действительно, все заработало на драйвере 3.51.

При тех же настройках (только имя драйвера поменял) с установленным 5.1.10-winx64
пишет ошибку из топика.
Visual Basic
1
oConn.Open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=testme;charset=cp1251;User=root;Password=333;Option=3;"
Visual Basic
1
oConn.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=testme;charset=cp1251;User=root;Password=333;Option=3;"
0
1178 / 420 / 106
Регистрация: 31.03.2012
Сообщений: 1,149
05.10.2012, 00:56 5
Цитата Сообщение от Dragokas Посмотреть сообщение
ОС: Windows 7 x64.
MySQL 5.5 x32, user: root, pass: 333. Имя базы данных: testme.
Query Browser подключается без ошибок.
Драйвер mysql-connector-odbc-5.1.10-winx64.
У меня winXP x86 и драйвера соответветсвующие, работает без проблем, - пример в этом топике
Windows 7 x64 у меня нет. Покупать его не буду, но если сумею за выходные найти дистрибутив для экспериментов, обязательно попробую.
0
173 / 19 / 3
Регистрация: 14.12.2010
Сообщений: 50
05.10.2012, 04:22 6
Dragokas,
Скорее всего проблема, что вы подключаетесь через
mysql-connector-odbc-5.1.10-winx64
64-битный драйвер. А используете в 32-битном Excel. У меня на машине Office 2010 32-битный и установлен 32 же драйвер mysql-connector-odbc-5.1.9-win32. Всё работает, включая VBScript. ОС Windows 7 64bit Professional.
0
1178 / 420 / 106
Регистрация: 31.03.2012
Сообщений: 1,149
05.10.2012, 13:51 7
Лучший ответ Сообщение было отмечено как решение

Решение

Итак, как обещал...
ОСь - Win7 x64 (временно!)
ms office 2003 (x86), - приобретен за денежку, и тратить их на обновление желания нет
MySQL - 5.5.22 - уж какой был.
Все установлено по умолчанию, т.е. жмем кнопки далее, далее и т.д. Установил пароль для пользователя root для доступа к MySQL - "1". в примере именно он указан.
Далее требуется установить mysql-connector-odbc-5.1.11-win32.msi (на сайте mysql.com есть свежее, но мне этого драйвера ODBC хватает, тем более, что этот он у меня уже был). Далее скачиваем mysql-connector-odbc-5.1.11-winx64.msi и устанавливаем в отдельную папку! - Это важно. После чего, все как описано в документации. Правда, не стал играться с установкой кодовой страниц и initial statement для ODBC драйвера, поэтому в примере присутствуют кракозябры. Ну а далее небольшой такой примерчик использования этого драйвера и скрин экрана
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Option Explicit
Private Sub testADO()
  Const adUseClient = 3, adOpenKeyset = 1, adOpenDynamic = 2, adOpenStatic = 3, adLockOptimistic = 3
  
  Dim oConnect As Object, oRecordSet As Object
  Dim fld
  
  Set oConnect = CreateObject("ADODB.Connection")
  Set oRecordSet = CreateObject("ADODB.Recordset")
  oConnect.Open "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=tst;USER=root;PASSWORD=1;"
  
  oRecordSet.CursorLocation = adUseClient
  
  oConnect.Execute "DROP TABLE IF EXISTS my_ado"
  oConnect.Execute "CREATE TABLE my_ado(id int not null auto_increment primary key," & _
                    "name  char(20)," & _
                    "dsc varchar(25)," & _
                    "txt text, dt date, tm time, ts timestamp) engine=myisam default character set=utf8"
 
  oConnect.Execute "INSERT INTO my_ado(id, name, dsc, txt, dt, tm, ts) values(null, 'Первое имя', 'Первое описание', 'Длинный текст, - такой, насколько не будет лениво стучать по клавишам',20120101, 1020, 201201011010)"
  oConnect.Execute "INSERT INTO my_ado(id, name, dsc, txt, dt, tm, ts) values(7, 'Второе имя id=7', 'Описание для второго', 'Длинный текст, - такой насколько не будет лениво стучать по клавишам',20120101, 1020, 201201011010)"
  oConnect.Execute "INSERT INTO my_ado values(null, 'Удалим', 'эту запись','т.е в окончательном наборе эта запись будет отсутствовать!!!!!!!!!!!!',20120102, 1030, 201201011020)"
  oConnect.Execute "INSERT INTO my_ado(dsc, name, txt, dt, tm, ts) values('последняя', 'На этот раз','запись, но после добавления переместится чуть выше',20120101, 1020, 201201011010)"
  
  oRecordSet.Open "SELECT * FROM my_ado", oConnect
  Debug.Print "Всего записей в наборе - " & oRecordSet.RecordCount
  oRecordSet.MoveFirst
  Debug.Print String(50, "-") & " Таблица, заполненная insert'ами " & String(50, "-")
  For Each fld In oRecordSet.fields
    Debug.Print fld.Name,
  Next
  Debug.Print
  
  Do Until oRecordSet.EOF
    For Each fld In oRecordSet.fields
      Debug.Print fld.Value,
    Next
    oRecordSet.MoveNext
    Debug.Print
  Loop
  oRecordSet.Close
  
  InputBox ("Это только для организации паузы" & vbNewLine & _
           "переключаемся на окно с mysql и вводим" & vbNewLine & _
           "insert into my_ado(id, name) values(3, 'Третья запись'")
  
  ' Обновление этой  записи в RecordSet
  oRecordSet.Open "SELECT * FROM my_ado", oConnect
  Debug.Print "Всего записей в наборе - " & oRecordSet.RecordCount
  oRecordSet.MoveFirst
  Debug.Print String(50, "-") & "После добавления сторонней записи из клиента MYSQL" & String(50, "-")
  For Each fld In oRecordSet.fields
    Debug.Print fld.Name,
  Next
  oRecordSet.Close
  
  Debug.Print
  Debug.Print String(50, "-") & "обновление записи добавленной сторонним приложением (добавлено в клиенте MYSQL)" & String(50, "-")
  
  oRecordSet.CursorLocation = adUseClient        'нужно для перемещения по данным
  oRecordSet.Open "SELECT * FROM my_ado", oConnect, adOpenDynamic, adLockOptimistic
  
  oRecordSet.Find "id=3"
  oRecordSet.fields("txt") = "В поле name - просто бред собачий"
  oRecordSet.Update
  Do Until oRecordSet.EOF
    For Each fld In oRecordSet.fields
      Debug.Print fld.Value,
    Next
    oRecordSet.MoveNext
    Debug.Print
  Loop
  oRecordSet.Close
  
  ' Заполнение через RecordSet
  oRecordSet.Open "select * from my_ado", oConnect, adOpenDynamic, adLockOptimistic
  oRecordSet.AddNew
  oRecordSet!Name = "Добавим в recorset"
  oRecordSet!txt = "Эта запись была добавлена в ранее полученный recordset, поле timestamp будет заполнено правильным значением"
  oRecordSet.Update
  oRecordSet.Close
 
  ' Обновление первой записи в RecordSet
  oRecordSet.Open "SELECT * FROM my_ado"
  oRecordSet!Name = "Этого не увидим"
  oRecordSet!txt = "Это просто так, будет заменен!!!"
  oRecordSet.Update
  oRecordSet.Close
  
  ' Обновление еще раз первой записи в RecordSet
  oRecordSet.Open "SELECT * FROM my_ado"
  oRecordSet!Name = "А увидим именно это"
  oRecordSet!txt = "Обновленный второй раз текст в этом поле - [txt]"
  oRecordSet.Update
  oRecordSet.Close
  
  ' Удаление записи в RecordSet
  oRecordSet.Open "SELECT * FROM my_ado"
  oRecordSet.MoveNext
  oRecordSet.MoveNext
  oRecordSet.Delete
  oRecordSet.Close
  
  oRecordSet.Open "SELECT * FROM my_ado", oConnect
  Debug.Print "Всего записей в наборе - " & oRecordSet.RecordCount
  oRecordSet.MoveFirst
  Debug.Print String(50, "-") & "Окончательная таблица после всех произведенных изменений " & String(50, "-")
  For Each fld In oRecordSet.fields
    Debug.Print fld.Name,
  Next
  Debug.Print
  
  Do Until oRecordSet.EOF
    For Each fld In oRecordSet.fields
      Debug.Print fld.Value,
    Next
    oRecordSet.MoveNext
    Debug.Print
  Loop
  oRecordSet.Close
  oConnect.Close
End Sub
Кракозябры отображаемые в окне консоли mysql и выведенные в ADO.Recordset после добавления записи клиентом mysql можно и нужно победить!
Миниатюры
Подключение драйвера ODBC mySQL (источник данных не найден)  
1
1178 / 420 / 106
Регистрация: 31.03.2012
Сообщений: 1,149
06.10.2012, 10:18 8
Установлено: W7 x64, MySQL 5.5 x32 - дополнительные тесты установки драйверов ODBC для MySQL.

После проведения этих тестов, получил следующее:
Если установить только odbc-win32, то добавить в источник данных ODBC для W7 x64 (Панель управления -> Все элементы панели управления -> Администрирование -> Источники данных ODBC) драйвер MySQL не получается!
Если установить odbc-winx64, тогда можно добавить источник данных ODBC для MySQL сервера и возможно получать данные от MySQL при ранее установленном драйвере odbc-win32. Без установленного драйвера odbc-win32 всегда получал ошибку тема этого топика. А вот после добавления источника данных ODBC для MySQL сервера, я удалил установленный драйвер odbc-winx64, драйвер odbc-win32 остался установлен. И приложение (VBA) по прежнему работало!

Не по теме:

И последнее, не ожидал такого поведения от клиента mysql в W7 x64, и был вынужден вручную задавать (set names cp1251) для правильного отображения данных в консоли mysql, впрочем учитывая, что никаких изменений в дефолтной настройке MySQL не проводил, это и есть правильно поведение сервера :)



Добавлено через 2 часа 7 минут
Кстати, с сайта mysql
The following instructions only work for 32-bit Windows systems. If you have a 64-bit Windows system, use the MSI installer, which installs both the 32-bit and 64-bit drivers to the correct locations.
1
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
06.10.2012, 23:51  [ТС] 9
Действительно, поставил драйвера одновременно х32 и х64:
mysql-connector-odbc-5.2.2-win32
mysql-connector-odbc-5.2.2-winx64
и все заработало. В голову такое никогда б не пришло. Теперь удалил х64 - все еще работает. Буду экспериментировать дальше на другой машине.
С драйвером 3.51 было все по-другому - с х32 не работал. х64 - нормально подключался.

Корректная строка подключение с новой версией драйвера выглядит так:
Visual Basic
1
oConn.Open "Driver={MySQL ODBC 5.2w Driver};Server=localhost;Database=sara;charset=cp1251;User=root;Option=3;"
Да, и спасибо большое, Joeymax, за примеры работы через Рекордсет.
0
173 / 19 / 3
Регистрация: 14.12.2010
Сообщений: 50
07.10.2012, 09:15 10
Joeymax,
(Панель управления -> Все элементы панели управления -> Администрирование -> Источники данных ODBC)
Весной тоже на это нарвался. В источниках данных показывает 64-битные драйвера. Поищите в папке Windows файл odbcad32.exe - он покажет установленные 32-битные драйвера и позволит
добавить в источник данных ODBC для W7 x64
0
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
05.06.2015, 00:01  [ТС] 11
Спасибо. Проблему тогда вроде как решили.
На счет ссылки, там к сожалению, лицензия: Trial. Полная - 150$.
0
2 / 1 / 0
Регистрация: 27.01.2015
Сообщений: 179
29.02.2016, 22:29 12
Скажите, а та же самая задача, только не к localhost, а к машине из локальной сети вроде 192.168.1.2 выполнима?
в MySQL Query Brouser подключение проходит, а в коде VBA не хочет. Ставил оба драйвера и x86 и x64 разные версии и 5.3 и 5.1.10 выдает ту же ошибку, что и в топике.

Добавлено через 21 час 51 минуту
Спасибо, разобрался!!! Указал неправильный IP!
0
29.02.2016, 22:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.02.2016, 22:29
Помогаю со студенческими работами здесь

Подключение к Paradox через ODBC: "Источник данных не найден или не указан драйвер"
Почему я не могу подключиться к Paradox через ODBC? вот строка connectionstring...

Не найден источник данных ODBC
Здравствуйте. У меня есть приложение которое должно взаимодействовать с сервером по средствам...

ADOConnection [ODBC] Источник данных не найден
Здравствуйте. Подскажите пожалуйста почему пишет что источник данных не найден? Вот код: ...

ODBC: "Источник данных не найден или не указан драйвер"
С подключением все в порядке, запускаю на другом ПК, выбивает: ODBC: "Источник данных не найден или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru