MySQL ODBC Проблема: не найдено имя источника данных и не указан драйвер по умолчанию - PullRequest
1 голос
/ 21 февраля 2012

Я сейчас пытаюсь запустить классическое приложение ASP, для которого мне дали исходный код. Я хочу установить на своем 64-битном компьютере с Windows 7 dev и у меня проблемы с подключением данных на основе ODBC к экземпляру MySQL.

Я вижу ошибку:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found 
and no default driver specified

/includes/<File Name>.asp, line 100

Что я пробовал:

  • Соединение без DSN.
  • Приложение работает в пуле приложений IIS с правами локальной системы. w3wp.exe может быть запущен под NT AUTHORITY / SYSTEM в мониторе процесса.
  • Приложение работает в пуле приложений IIS, разрешено запускать 32-разрядные приложения.
  • Пробовал с 64-разрядной версией Connector / ODBC 5.1.10, установленной только с http://dev.mysql.com (На данный момент ни один драйвер не был указан в C: \ Windows \ SysWOW64 \ odbcad32.exe, но находился в C: \ Windows \ system32 \ odbcad32.exe)
  • Пробовал с 32-разрядной версией Connector / ODBC 5.1.10, установленной только с http://dev.mysql.com (На данный момент драйвер не был указан в C: \ Windows \ system32 \ odbcad32.exe, но находился в C: \ Windows \ SysWOW64 \ odbcad32.exe)
  • Пробовал с установленными 32-битными и 64-битными версиями Connector / ODBC 5.1.10.
  • Проверенное имя водителя не написано с ошибкой. Вместе с другими чеками отсюда http://support.microsoft.com/kb/306345.

    Driver = {MySQL ODBC 5.1 Driver}; Сервер = localhost; База данных = DBName; Пользователь = root; Пароль = Пароль; Опция = 3

Дополнительная информация:

Я наблюдаю за монитором процесса, и два результата:

ПУТЬ НЕ НАЙДЕН (ищите .asp / web.config, который кажется странным. Переполнение буфера

Обе записи показывают:

Пользователь: NT AUTHORITY \ SYSTEM

Процесс: C: \ Windows \ SysWOW64 \ Inetsrv \ w3wp.exe C: \ Windows \ SysWOW64 \ odbcint.dll

Я в тупике, может ли кто-нибудь высказать предположение о том, как я запускаю это в контексте, который я описал?

Ответы [ 2 ]

0 голосов
/ 29 марта 2015

Я обнаружил, что это работает с Windows на MySQL как DSN-less соединение. Трюк заключался в том, чтобы ELIMINATE спецификация порта в конце адреса сервера.

"DRIVER={MySQL ODBC 5.3 UNICODE Driver}; Server=**;Database=**;User=**;Password=**; OPTION=3"

Примечание : Строка сервера - это интернет-адрес сервера, НО НЕТ ПОРТА УКАЗАНО - то есть НЕТ ": 3306" на конце

0 голосов
/ 29 февраля 2012

Решил проблему сейчас.Запись здесь, на случай, если это пригодится другим.

Проблема была намного проще, чем кажется на первый взгляд.Проблема заключалась в том, что приложение использовало смесь именованных и безымянных источников данных (DSN / DSN-Less).

Мне не было очевидно, что какие-либо именованные соединения использовались, пока я не настроил приложение для отладки в Visualстудия.Вот примерное руководство по отладке приложения в visual studio (за исключением того, что я использовал HTTP-сайт, а не файловую систему):

http://www.codeproject.com/Articles/28792/Debugging-Classic-ASP-VBScript-in-Visual-Studio-20

После создания требуемого DSN были некоторыедальнейшие исключения бросаются в отношении значений по умолчанию в столбцах базы данных.Это произошло из-за настройки MySQL, которую можно изменить в файле my.ini.

http://bugs.mysql.com/bug.php?id=14306

C: \ Program Files (x86) \ MySQL \ MySQL Server 5.5 \ my.ini

# Set the SQL mode to strict
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode=""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...