MySQL ODBC 32 vs 64 bit

I have a 32-bit application that should run on a Windows x64 server using the 64-bit version of MySQL.
Should I use a 32-bit ODBC driver or a 64-bit ODBC driver?
Or do I also need to install a 32-bit version of MySQL?

+4
source share
2 answers

I could

  • install 32-bit ODBC on Windows 64-bit

  • my application (32-bit) works fine with 32-bit ODBC against 64-bit MySQL on 64-bit Windows (2008 R2)

To achieve 1) I had to modify the install.bat that came with the MySQL ODBC zip package to take into account the fact that the 32-bit driver must be installed in c:\windows\syswow64 .

 @ECHO OFF REM ######################################################### REM REM \brief Install myodbc. REM REM This exists for those working with the Windows source REM distribution. REM REM \sa README.win REM REM ######################################################### SET installdir=none IF EXIST %windir%\system\nul SET installdir=%windir%\system IF EXIST %windir%\system32\nul SET installdir=%windir%\system32 REM **************************** REM * check syswow64 folder too ... REM **************************** IF EXIST %windir%\syswow64\nul SET installdir=%windir%\syswow64 IF %installdir%==none GOTO :doError5 IF "%1"=="1" GOTO :doDebug IF "%1"=="0" GOTO :doNormal GOTO doSyntax :doNormal REM **************************** REM * syswow64 must be specified REM **************************** IF EXIST %installdir%\myodbc3i.exe GOTO :doError4 REM **** REM * Find out the bin/lib directory, or use default REM **** SET libdir=lib SET bindir=bin IF EXIST lib\release\myodbc3.lib SET libdir=lib\release IF EXIST lib\relwithdebinfo\myodbc3.lib SET libdir=lib\relwithdebinfo IF EXIST bin\release\myodbc3i.exe SET bindir=bin\release IF EXIST bin\relwithdebinfo\myodbc3i.exe SET bindir=bin\relwithdebinfo REM **** REM * Copying myodbc libraries and executables to install dir... REM **** IF NOT EXIST %bindir%\myodbc3c.exe GOTO :doError2 IF NOT EXIST %libdir%\myodbc3.lib GOTO :doError2 IF NOT EXIST %libdir%\myodbc3S.lib GOTO :doError2 IF NOT EXIST %bindir%\myodbc3i.exe GOTO :doError2 IF NOT EXIST %bindir%\myodbc3m.exe GOTO :doError2 copy %libdir%\myodbc3S.dll %installdir% copy %libdir%\myodbc3S.lib %installdir% copy %libdir%\myodbc3.dll %installdir% copy %libdir%\myodbc3.lib %installdir% copy %bindir%\myodbc3i.exe %installdir% copy %bindir%\myodbc3m.exe %installdir% copy %bindir%\myodbc3c.exe %installdir% copy doc\*.hlp %installdir% REM **** REM * Registering driver... REM * REM * We can do this with myodbc3i.exe or the MS Windows ODBCConf.exe. It REM * may be safer to use the ODBCConf.exe when we think about such things REM * as 64bit windows. REM **** REM **************************** REM * syswow64 must be specified REM **************************** %installdir%\myodbc3i -a -d -t"MySQL ODBC 3.51 Driver;DRIVER=%installdir%\myodbc3.dll;SETUP=%installdir%\myodbc3S.dll" GOTO doSuccess :doDebug REM **** REM * Find out the bin/lib directory, or use default REM **** SET libdir=lib IF EXIST lib\debug\myodbc3d.lib SET libdir=lib\debug IF NOT EXIST %libdir%\myodbc3d.lib goto doError3 IF NOT EXIST %libdir%\myodbc3E.lib goto doError3 IF NOT EXIST %installdir%\myodbc3i.exe goto doError1 REM **** REM * Copying myodbc debug libraries to install dir... REM **** copy %libdir%\myodbc3E.dll %installdir% copy %libdir%\myodbc3E.lib %installdir% copy %libdir%\myodbc3d.dll %installdir% copy %libdir%\myodbc3d.lib %installdir% REM **** REM * Registering driver... REM **** REM **************************** REM * syswow64 must be specified REM **************************** %installdir%\myodbc3i -a -d -t"MySQL ODBC 3.51 Driver (debug);DRIVER=myodbc3d.dll;SETUP=myodbc3E.dll" goto doSuccess :doSuccess ECHO "+-----------------------------------------------------+" ECHO "| DONE |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| Hopefully things went well; the Connector/ODBC |" ECHO "| files have been copied to the system directory |" ECHO "| and the driver has been registered. |" ECHO "| |" ECHO "| Connector/ODBC is ready to use. |" ECHO "| |" ECHO "| The most common thing to do next is to go to the |" ECHO "| Control Panel and find the ODBC Administrator - |" ECHO "| then use it to create a Data Source Name (DSN) |" ECHO "| so you (and your application) can connect to a |" ECHO "| MySQL server. |" ECHO "| |" ECHO "+-----------------------------------------------------+" EXIT /B 0 :doError1 ECHO "+-----------------------------------------------------+" ECHO "| ERROR |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| The non-debug version of Connector/ODBC needs to be |" ECHO "| installed. |" ECHO "| |" ECHO "+-----------------------------------------------------+" PAUSE EXIT /B 1 :doError2 ECHO "+-----------------------------------------------------+" ECHO "| ERROR |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| Connector/ODBC not built. Consider executing |" ECHO "| Build.bat. |" ECHO "| |" ECHO "+-----------------------------------------------------+" PAUSE EXIT /B 1 :doError3 ECHO "+-----------------------------------------------------+" ECHO "| ERROR |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| Connector/ODBC (debug) not built. Consider executing|" ECHO "| Build.bat. |" ECHO "| |" ECHO "+-----------------------------------------------------+" PAUSE EXIT /B 1 :doError4 ECHO "+-----------------------------------------------------+" ECHO "| ERROR |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| Existing Connector/ODBC installed. Request ignored. |" ECHO "| |" ECHO "+-----------------------------------------------------+" PAUSE EXIT /B 1 :doError5 ECHO "+-----------------------------------------------------+" ECHO "| ERROR |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| Can't find the Windows system directory |" ECHO "| |" ECHO "+-----------------------------------------------------+" PAUSE EXIT /B 1 :doSyntax ECHO "+-----------------------------------------------------+" ECHO "| Install.bat |" ECHO "+-----------------------------------------------------+" ECHO "| |" ECHO "| DESCRIPTION |" ECHO "| |" ECHO "| Use this to copy the driver and supporting files |" ECHO "| to the system directory and register the driver. |" ECHO "| |" ECHO "| You can not properly install the debug version |" ECHO "| without first installing the regular version. |" ECHO "| |" ECHO "| SYNTAX |" ECHO "| |" ECHO "| Install <debug> |" ECHO "| |" ECHO "| <debug> must be; |" ECHO "| 0 - to install a regular build |" ECHO "| 1 - to install a debug version |" ECHO "| |" ECHO "+-----------------------------------------------------+" 
+4
source

You will need to install the 32-bit SQL and ODBC driver to see how your application is in the 32-bit version. For compatibility reasons.

I'm still looking, editing.

** EDIT

To work around this problem, use the appropriate version of the ODBC Administrator tool. If you create and run the application as a 32-bit application on a 64-bit operating system, you must create the ODBC data source using the ODBC Administrator tool in the% windir% \ SysWOW64 \ odbcad32.exe folder. To indicate the type of DSN, you can add "_32" to 32-bit user DSNs and "_64" to 64-bit user DSNs.

From Microsoft support .

** EDIT

If you have a workaround, you need to create an ODBC data source using the Admin tool. This is also explained in the same link.

 %windir%\SysWOW64\odbcad32.exe 
+6
source

Source: https://habr.com/ru/post/1303150/


All Articles