Table of Contents
This chapter describes MySQL Connectors, drivers that provide connectivity to the MySQL server for client programs. There are currently five MySQL Connectors:
Connector/ODBC provides driver support for connecting to a MySQL server using the Open Database Connectivity (ODBC) API. Support is available for ODBC connectivity from Windows, Unix and Mac OS X platforms.
Connector/NET enables developers to create .NET applications that use data stored in a MySQL database. Connector/NET implements a fully-functional ADO.NET interface and provides support for use with ADO.NET aware tools. Applications that want to use Connector/NET can be written in any of the supported .NET languages.
The MySQL Visual Studio Plugin works with Connector/NET and Visual Studio 2005. The plugin is a MySQL DDEX Provider, which means that you can use the schema and data manipulation tools within Visual Studio to create and edit objects within a MySQL database.
Connector/J provides driver support for connecting to MySQL from a Java application using the standard Java Database Connectivity (JDBC) API.
Connector/MXJ is a tool that enables easy deployment and management of MySQL server and database through your Java application.
Connector/PHP is a Windows-only connector for PHP that provides
the mysql and mysqli
extensions for use with MySQL 5.0.18 and later.
For information on connecting to a MySQL server using other languages and interfaces than those detailed above, including Perl, Python and PHP for other platforms and environments, please refer to the Chapter 25, APIs and Libraries chapter.
The MySQL Connector/ODBC is the name for the family of MySQL ODBC drivers (previously called MyODBC drivers) that provide access to a MySQL database using the industry standard Open Database Connectivity (ODBC) API. This reference covers Connector/ODBC 3.51, a version of the API that provides ODBC 3.5x compliant access to a MySQL database.
The manual for versions of Connector/ODBC older than 3.51 can be located in the corresponding binary or source distribution.
For more information on the ODBC API standard and how to use it, refer to http://www.microsoft.com/data/.
The application development part of this reference assumes a good working knowledge of C, general DBMS knowledge, and finally, but not least, familiarity with MySQL. For more information about MySQL functionality and its syntax, refer to http://dev.mysql.com/doc/.
Typically, you need to install Connector/ODBC only on Windows machines. For Unix and Mac OS X you can use the native MySQL network or named pipe to communicate with your MySQL database. You may need Connector/ODBC for Unix or Mac OS X if you have an application that requires an ODBC interface to communicate with the database. Applications that require ODBC to communicate with MySQL include ColdFusion, Microsoft Office, and Filemaker Pro.
If you want to install the Connector/ODBC connector on a Unix host, then you must also install an ODBC manager.
Key topics:
For help installing Connector/ODBC see Section 26.1.2, “Connector/ODBC Installation”.
For more information on connecting to a MySQL database from a Windows host using Connector/ODBC see Section 26.1.4.2, “Step-by-step Guide to Connecting to a MySQL Database through Connector/ODBC”.
If you want to use Microsoft Access as an interface to a MySQL database using Connector/ODBC see Section 26.1.4.4, “Using Connector/ODBC with Microsoft Access”.
General tips on using Connector/ODBC, including obtaining the last auto increment ID see Section 26.1.6.1, “Connector/ODBC General Functionality”.
For tips and common questions on using Connector/ODBC with specific application see Section 26.1.6.2, “Connector/ODBC Application Specific Tips”.
For a general list of Frequently Asked Questions see Section 26.1.6.3, “Connector/ODBC Errors and Resolutions (FAQ)”.
Additional support when using Connector/ODBC is available, see Section 26.1.7, “Connector/ODBC Support”.
MySQL Enterprise MySQL Enterprise subscribers will find more information about MySQL and ODBC in the Knowledge Base articles about ODBC. Access to the MySQL Knowledge Base collection of articles is one of the advantages of subscribing to MySQL Enterprise. For more information see http://www.mysql.com/products/enterprise/advisors.html.
ODBC (Open Database Connectivity) provides a way for client programs to access a wide range of databases or data sources. ODBC is a standardized API that allows connections to SQL database servers. It was developed according to the specifications of the SQL Access Group and defines a set of function calls, error codes, and data types that can be used to develop database-independent applications. ODBC usually is used when database independence or simultaneous access to different data sources is required.
For more information about ODBC, refer to http://www.microsoft.com/data/.
There are currently two version of Connector/ODBC available:
Connector/ODBC 5.1, currently in Alpha status, is a partial rewrite of the of the 3.51 code base and is designed to work all versions of MySQL from 4.1. Connector/ODBC 5.1 will be a complete implementation of the ODBC Core interface,plus more Level 1 and Level 2 functionality of the ODBC specification than that currently supported by Connector/ODBC 3.51. See Section 26.1.1.2, “Connector/ODBC Roadmap”.
Connector/ODBC 3.51 is the current release of the 32-bit ODBC driver, also known as the MySQL ODBC 3.51 driver. This version is enhanced compared to the older Connector/ODBC 2.50 driver. It has support for ODBC 3.5x specification level 1 (complete core API + level 2 features) in order to continue to provide all functionality of ODBC for accessing MySQL.
MyODBC 2.50 is the previous version of the 32-bit ODBC driver from MySQL AB that is based on ODBC 2.50 specification level 0 (with level 1 and 2 features). Information about the MyODBC 2.50 driver is included in this guide for the purposes of comparison only.
Development on Connector/ODBC 5.0 was stopped due to development issues. Connector/ODBC 5.1 is now the current development release.
From this section onward, the primary focus of this guide is the Connector/ODBC 3.51 driver. More information about the MyODBC 2.50 driver in the documentation included in the installation packages for that version. If there is a specific issue (error or known problem) that only affects the 2.50 version, it may be included here for reference.
Version numbers for MySQL products are formatted as X.X.X. However, Windows tools (Control Panel, properties display) may show the version numbers as XX.XX.XX. For example, the official MySQL formatted version number 5.0.9 may be displayed by Windows tools as 5.00.09. The two versions are the same; only the number display format is different.
Connector/ODBC 5.1 is currenly in development and will be a complete implementation of the ODBC Core interface,plus more Level 1 and Level 2 functionality of the ODBC specification than that currently supported by Connector/ODBC 3.51.
The following functionality will added or changed as part of this development:
Add support for SQL_NUMERIC_STRUCT: MSDN Article 714556.
Replace installer library with new implementation (from v5 tree).
Implement native Windows setup library.
Implement native Mac OS X setup library.
Replace OPTIONS flags with individual DSN settings (but support OPTIONS for backwards-compatibility).
Fix support for SQLBIGINT (Bug#28887): MSDN Article 714121.
Make diagnostics support standards-compliant: MSDN Article 711021.
Add support for SQL_ATTR_METADATA_ID: MSDN Article 716447.
Implement SQLBrowseConnect(): MSDN Article 714565, MSDN Article 712446.
Implement SQLCancel() (Bug#15601): MSDN Article 714112.
Implement arrays of parameters: MSDN Article 711818.
Open Database Connectivity (ODBC) is a widely accepted application-programming interface (API) for database access. It is based on the Call-Level Interface (CLI) specifications from X/Open and ISO/IEC for database APIs and uses Structured Query Language (SQL) as its database access language.
A survey of ODBC functions supported by Connector/ODBC is given at Section 26.1.5.1, “Connector/ODBC API Reference”. For general information about ODBC, see http://www.microsoft.com/data/.
The Connector/ODBC architecture is based on five components, as shown in the following diagram:

Application:
The Application uses the ODBC API to access the data from the MySQL server. The ODBC API in turn uses the communicates with the Driver Manager. The Application communicates with the Driver Manager using the standard ODBC calls. The Application does not care where the data is stored, how it is stored, or even how the system is configured to access the data. It needs to know only the Data Source Name (DSN).
A number of tasks are common to all applications, no matter how they use ODBC. These tasks are:
Selecting the MySQL server and connecting to it
Submitting SQL statements for execution
Retrieving results (if any)
Processing errors
Committing or rolling back the transaction enclosing the SQL statement
Disconnecting from the MySQL server
Because most data access work is done with SQL, the primary tasks for applications that use ODBC are submitting SQL statements and retrieving any results generated by those statements.
Driver manager:
The Driver Manager is a library that manages communication between application and driver or drivers. It performs the following tasks:
Resolves Data Source Names (DSN). The DSN is a configuration string that identifies a given database driver, database, database host and optionally authentication information that enables an ODBC application to connect to a database using a standardized reference.
Because the database connectivity information is identified by the DSN, any ODBC compliant application can connect to the data source using the same DSN reference. This eliminates the need to separately configure each application that needs access to a given database; instead you instruct the application to use a pre-configured DSN.
Loading and unloading of the driver required to access a specific database as defined within the DSN. For example, if you have configured a DSN that connects to a MySQL database then the driver manager will load the Connector/ODBC driver to enable the ODBC API to communicate with the MySQL host.
Processes ODBC function calls or passes them to the driver for processing.
Connector/ODBC Driver:
The Connector/ODBC driver is a library that implements the functions supported by the ODBC API. It processes ODBC function calls, submits SQL requests to MySQL server, and returns results back to the application. If necessary, the driver modifies an application's request so that the request conforms to syntax supported by MySQL.
DSN Configuration:
The ODBC configuration file stores the driver and database information required to connect to the server. It is used by the Driver Manager to determine which driver to be loaded according to the definition in the DSN. The driver uses this to read connection parameters based on the DSN specified. For more information, Section 26.1.3, “Connector/ODBC Configuration”.
MySQL Server:
The MySQL database where the information is stored. The database is used as the source of the data (during queries) and the destination for data (during inserts and updates).
An ODBC Driver Manager is a library that manages communication between the ODBC-aware application and any drivers. Its main functionality includes:
Resolving Data Source Names (DSN).
Driver loading and unloading.
Processing ODBC function calls or passing them to the driver.
Both Windows and Mac OS X include ODBC driver managers with the operating system. Most ODBC Driver Manager implementations also include an administration application that makes the configuration of DSN and drivers easier. Examples and information on these managers, including Unix ODBC driver managers are listed below:
Microsoft Windows ODBC Driver Manager
(odbc32.dll),
http://www.microsoft.com/data/.
Mac OS X includes ODBC Administrator,
a GUI application that provides a simpler configuration
mechanism for the Unix iODBC Driver Manager. You can
configure DSN and driver information either through ODBC
Administrator or through the iODBC configuration files.
This also means that you can test ODBC Administrator
configurations using the iodbctest
command.
http://www.apple.com.
unixODBC Driver Manager for Unix
(libodbc.so). See
http://www.unixodbc.org,
for more information. The unixODBC
Driver Manager includes the Connector/ODBC driver 3.51 in
the installation package, starting with version
unixODBC 2.1.2.
iODBC ODBC Driver Manager for Unix
(libiodbc.so), see
http://www.iodbc.org, for
more information.
You can install the Connector/ODBC drivers using two different methods, a binary installation and a source installation. The binary installation is the easiest and most straightforward method of installation. Using the source installation methods should only be necessary on platforms where a binary installation package is not available, or in situations where you want to customize or modify the installation process or Connector/ODBC drivers before installation.
Where to Get Connector/ODBC
MySQL AB distributes all its products under the General Public License (GPL). You can get a copy of the latest version of Connector/ODBC binaries and sources from the MySQL AB Web site http://dev.mysql.com/downloads/.
For more information about Connector/ODBC, visit http://www.mysql.com/products/myodbc/.
For more information about licensing, visit http://www.mysql.com/company/legal/licensing/.
Supported Platforms
Connector/ODBC can be used on all major platforms supported by MySQL. You can install it on:
Windows 95, 98, Me, NT, 2000, XP, and 2003
All Unix-like Operating Systems, including: AIX, Amiga, BSDI, DEC, FreeBSD, HP-UX 10/11, Linux, NetBSD, OpenBSD, OS/2, SGI Irix, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64 Unix
Mac OS X and Mac OS X Server
Using a binary distribution offers the most straightforward method for installing Connector/ODBC. If you want more control over the driver, the installation location and or to customize elements of the driver you will need to build and install from the source.
If a binary distribution is not available for a particular
platform build the driver from the original source code. You can
contribute the binaries you create to MySQL by sending a mail
message to <myodbc@lists.mysql.com>, so that it
becomes available for other users.
For further instructions:
| Platform | Binary | Source |
|---|---|---|
| Windows | Installation Instructions | Build Instructions |
| Unix/Linux | Installation Instructions | Build Instructions |
| Mac OS X | Installation Instructions |
Before installing the Connector/ODBC drivers on Windows you should ensure that your Microsoft Data Access Components (MDAC) are up to date. You can obtain the latest version from the Microsoft Data Access and Storage Web site.
There are three available distribution types to use when installing for Windows. The contents in each case are identical, it is only the installation method which is different.
Zipped installer consists of a Zipped package containing a standalone installation application. To install from this package, you must unzip the installer, and then run the installation application. See Section 26.1.2.1.1, “Installing the Windows Connector/ODBC Driver using an installer” to complete the installation.
MSI installer, an installation file that can be used with the installer included in Windows 2000, Windows XP and Windows Server 2003. See Section 26.1.2.1.1, “Installing the Windows Connector/ODBC Driver using an installer” to complete the installation.
Zipped DLL package, containing the DLL files that need must be manually installed. See Section 26.1.2.1.2, “Installing the Windows Connector/ODBC Driver using the Zipped DLL package” to complete the installation.
The installer packages offer a very simple method for installing the Connector/ODBC drivers. If you have downloaded the zipped installer then you must extract the installer application. The basic installation process is identical for both installers.
You should follow these steps to complete the installation:
Double click on the standalone installer that you extracted, or the MSI file you downloaded.
The MySQL Connector/ODBC 3.51 - Setup Wizard will start. Click the button to begin the installation process.

You will need to choose the installation type. The Typical installation provides the standard files you will need to connect to a MySQL database using ODBC. The Complete option installs all the available files, including debug and utility components. It is recommended you choose one of these two options to complete the installation. If choose one of these methods, click and then proceed to step 5.
You may also choose a Custom installation, which enables you to select the individual components that you want to install. You have chosen this method, click and then proceed to step 4.

If you have chosen a custom installation, use the popups to select which components to install and then click to install the necessary files.

Once the files have copied to your machine, the installation is complete. Click to exit the installer.

Now the installation is complete, you can continue to configure your ODBC connections using Section 26.1.3, “Connector/ODBC Configuration”.
If you have downloaded the Zipped DLL package then you must install the individual files required for Connector/ODBC operation manually. Once you have unzipped the installation files, you can either perform this operation by hand, executing each statement individually, or you can use the included Batch file to perform an installation to the default locations.
To install using the Batch file:
Unzip the Connector/ODBC Zipped DLL package.
Open a Command Prompt.
Change to the directory created when you unzipped the Connector/ODBC Zipped DLL package.
Run Install.bat:
C:\> Install.batThis will copy the necessary files into the default location, and then register the Connector/ODBC driver with the Windows ODBC manager.
If you want to copy the files to an alternative location - for example, to run or test different versions of the Connector/ODBC driver on the same machine, then you must copy the files by hand. It is however not recommended to install these files in a non-standard location. To copy the files by hand to the default installation location use the following steps:
Unzip the Connector/ODBC Zipped DLL package.
Open a Command Prompt.
Change to the directory created when you unzipped the Connector/ODBC Zipped DLL package.
Copy the library files to a suitable directory. The
default is to copy them into the default Windows system
directory \Windows\System32:
C:\>copy lib\myodbc3S.dll \Windows\System32C:\>copy lib\myodbc3S.lib \Windows\System32C:\>copy lib\myodbc3.dll \Windows\System32C:\>copy lib\myodbc3.lib \Windows\System32
Copy the Connector/ODBC tools. These must be placed into a
directory that is in the system PATH.
The default is to install these into the Windows system
directory \Windows\System32:
C:\>copy bin\myodbc3i.exe \Windows\System32C:\>copy bin\myodbc3m.exe \Windows\System32C:\>copy bin\myodbc3c.exe \Windows\System32
Optionally copy the help files. For these files to be accessible through the help system, they must be installed in the Windows system directory:
C:\> copy doc\*.hlp \Windows\System32Finally, you must register the Connector/ODBC driver with the ODBC manager:
C:\> myodbc3i -a -d -t"MySQL ODBC 3.51 Driver;\
DRIVER=myodbc3.dll;SETUP=myodbc3S.dll"You must change the references to the DLL files and command location in the above statement if you have not installed these files into the default location.
On Windows, you may get the following error when trying to install the older MyODBC 2.50 driver:
An error occurred while copying C:\WINDOWS\SYSTEM\MFC30.DLL. Restart Windows and try installing again (before running any applications which use ODBC)
The reason for the error is that another application is
currently using the ODBC system. Windows may not allow you to
complete the installation. In most cases, you can continue by
pressing Ignore to copy the rest of the
Connector/ODBC files and the final installation should still
work. If it doesn't, the solution is to re-boot your computer
in “safe mode.” Choose safe mode by pressing F8
just before your machine starts Windows during re-booting,
install the Connector/ODBC drivers, and re-boot to normal
mode.
There are two methods available for installing Connector/ODBC on Unix from a binary distribution. For most Unix environments you will need to use the tarball distribution. For Linux systems, there is also an RPM distribution available.
To install the driver from a tarball distribution
(.tar.gz file), download the latest
version of the driver for your operating system and follow
these steps that demonstrate the process using the Linux
version of the tarball:
shell>su rootshell>gunzip mysql-connector-odbc-3.51.11-i686-pc-linux.tar.gzshell>tar xvf mysql-connector-odbc-3.51.11-i686-pc-linux.tarshell>cd mysql-connector-odbc-3.51.11-i686-pc-linux
Read the installation instructions in the
INSTALL-BINARY file and execute these
commands.
shell>cp libmyodbc* /usr/local/libshell>cp odbc.ini /usr/local/etcshell>export ODBCINI=/usr/local/etc/odbc.ini
Then proceed on to
Section 26.1.3.4, “Configuring a Connector/ODBC DSN on Unix”,
to configure the DSN for Connector/ODBC. For more information,
refer to the INSTALL-BINARY file that
comes with your distribution.
To install or upgrade Connector/ODBC from an RPM distribution
on Linux, simply download the RPM distribution of the latest
version of Connector/ODBC and follow the instructions below.
Use su root to become
root, then install the RPM file.
If you are installing for the first time:
shell>su rootshell>rpm -ivh mysql-connector-odbc-3.51.12.i386.rpm
If the driver exists, upgrade it like this:
shell>su rootshell>rpm -Uvh mysql-connector-odbc-3.51.12.i386.rpm
If there is any dependency error for MySQL client library,
libmysqlclient, simply ignore it by
supplying the --nodeps option, and then make
sure the MySQL client shared library is in the path or set
through LD_LIBRARY_PATH.
This installs the driver libraries and related documents to
/usr/local/lib and
/usr/share/doc/MyODBC, respectively.
Proceed onto Section 26.1.3.4, “Configuring a Connector/ODBC DSN on Unix”.
To uninstall the driver,
become root and execute an
rpm command:
shell>su rootshell>rpm -e mysql-connector-odbc
Mac OS X is based on the FreeBSD operating system, and you can normally use the MySQL network port for connecting to MySQL servers on other hosts. Installing the Connector/ODBC driver enables you to connect to MySQL databases on any platform through the ODBC interface. You should only need to install the Connector/ODBC driver when your application requires an ODBC interface. Applications that require or can use ODBC (and therefore the Connector/ODBC driver) include ColdFusion, Filemaker Pro, 4th Dimension and many other applications.
Mac OS X includes its own ODBC manager, based on the
iODBC manager. Mac OS X includes an
administration tool that provides easier administration of ODBC
drivers and configuration, updating the underlying
iODBC configuration files.
The method for installing Connector/ODBC on Mac OS X depends on
the version on Connector/ODBC you are using. For Connector/ODBC
3.51.14 and later, the package is provided as a compress tar
archive that you must manually install. For Connector/ODBC
3.51.13 and earlier the software was provided on a compressed
disk image (.dmg) file and included an
installer.
In either case, the driver is designed to work with the iODBC driver manager included with Mac OS X.
To install Connector/ODBC 3.51.14 and later:
Download the installation file. Note that versions are available for both PowerPC and Intel platforms.
Extract the archive:
$ tar zxf mysql-connector-odbc-3.51.16-osx10.4-x86-32bit.tar.gz
The directory created will contain two subdirectories,
lib and bin. You
need to copy these to a suitable location such as
/usr/local:
$ cp bin/* /usr/local/bin $ cp lib/* /usr/local/lib
Finally, you must register the driver with iODBC using the myodbc3i tool you just installed:
$ myodbc3i -a -d -t"MySQL ODBC 3.51 Driver;Driver=/usr/local/lib/libmyodbc3.so;Setup=/usr/local/lib/libmyodbc3S.so"
You can verify the installed drivers either by using the ODBC Administrator application or the myodbc3i utility:
$ myodbc3i -q -d
To install Connector/ODBC 3.51.13 and ealier, follow these steps:
Download the file to your computer and double-click on the downloaded image file.
Within the disk image you will find an installer package
(with the .pkg extension). Double click
on this file to start the Mac OS X installer.
You will be presented with the installer welcome message. Click the button to begin the installation process.

Please take the time to read the Important Information as it contains guidance on how to complete the installation process. Once you have read the notice and collected the necessary information, click .

Connector/ODBC drivers are made available under the GNU General Public License. Please read the license if you are not familiar with it before continuing installation. Click to approve the license (you will be asked to confirm that decision) and continue the installation.

Choose a location to install the Connector/ODBC drivers and the ODBC Administrator application. You must install the files onto a drive with an operating system and you may be limited in the choices available. Select the drive you want to use, and then click .

The installer will automatically select the files that need to be installed on your machine. Click to continue. The installer will copy the necessary files to your machine. A progress bar will be shown indicating the installation progress.

When installation has been completed you will get a window like the one shown below. Click to close and quit the installer.

You should only need to install Connector/ODBC from source on Windows if you want to change or modify the source or installation. If you are unsure whether to install from source, please use the binary installation detailed in Section 26.1.2.1, “Installing Connector/ODBC from a Binary Distribution on Windows”.
Installing Connector/ODBC from source on Windows requires a number of different tools and packages:
MDAC, Microsoft Data Access SDK from http://www.microsoft.com/data/.
Suitable C compiler, such as Microsoft Visual C++ or the C compiler included with Microsoft Visual Studio.
Compatible make tool. Microsoft's
nmake is used in the examples in this
section.
MySQL client libraries and include files from MySQL 4.0.0 or higher. (Preferably MySQL 4.0.16 or higher). This is required because Connector/ODBC uses new calls and structures that exist only starting from this version of the library. To get the client libraries and include files, visit http://dev.mysql.com/downloads/.
Connector/ODBC source distributions include
Makefiles that require the
nmake or other make
utility. In the distribution, you can find
Makefile for building the release version
and Makefile_debug for building debugging
versions of the driver libraries and DLLs.
To build the driver, use this procedure:
Download and extract the sources to a folder, then change
directory into that folder. The following command assumes
the folder is named myodbc3-src:
C:\> cd myodbc3-src
Edit Makefile to specify the correct
path for the MySQL client libraries and header files. Then
use the following commands to build and install the
release version:
C:\>nmake -f MakefileC:\>nmake -f Makefile install
nmake -f Makefile builds the release
version of the driver and places the binaries in
subdirectory called Release.
nmake -f Makefile install installs
(copies) the driver DLLs and libraries
(myodbc3.dll,
myodbc3.lib) to your system
directory.
To build the debug version, use
Makefile_Debug rather than
Makefile, as shown below:
C:\>nmake -f Makefile_debugC:\>nmake -f Makefile_debug install
You can clean and rebuild the driver by using:
C:\>nmake -f Makefile cleanC:\>nmake -f Makefile install
Make sure to specify the correct MySQL client libraries
and header files path in the Makefiles (set the
MYSQL_LIB_PATH and
MYSQL_INCLUDE_PATH variables). The
default header file path is assumed to be
C:\mysql\include. The default
library path is assumed to be
C:\mysql\lib\opt for release DLLs
and C:\mysql\lib\debug for debug
versions.
For the complete usage of nmake, visit http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vcce4/html/evgrfRunningNMAKE.asp.
If you are using the Subversion tree for compiling, all
Windows-specific Makefiles are
named as Win_Makefile*.
After the driver libraries are copied/installed to the system
directory, you can test whether the libraries are properly
built by using the samples provided in the
samples subdirectory:
C:\>cd samplesC:\>nmake -f Makefile all
You need the following tools to build MySQL from source on Unix:
A working ANSI C++ compiler. gcc 2.95.2 or later, egcs 1.0.2 or later or egcs 2.91.66, SGI C++, and SunPro C++ are some of the compilers that are known to work.
A good make program. GNU make is always recommended and is sometimes required.
MySQL client libraries and include files from MySQL 4.0.0 or higher. (Preferably MySQL 4.0.16 or higher). This is required because Connector/ODBC uses new calls and structures that exist only starting from this version of the library. To get the client libraries and include files, visit http://dev.mysql.com/downloads/.
If you have built your own MySQL server and/or client
libraries from source then you must have used the
--enable-thread-safe-client option to
configure when the libraries were built.
You should also ensure that the
libmysqlclient library were built and
installed as a shared library.
A compatible ODBC manager must be installed. Connector/ODBC
is known to work with the iODBC and
unixODBC managers. See
Section 26.1.1.3.2, “ODBC Driver Managers”, for
more information.
If you are using a character set that isn't compiled into
the MySQL client library then you need to install the MySQL
character definitions from the charsets
directory into SHAREDIR (by
default,
/usr/local/mysql/share/mysql/charsets).
These should be in place if you have installed the MySQL
server on the same machine. See Chapter 9, Character Set Support,
for more information on character set support.
Once you have all the required files, unpack the source files to a separate directory, you then have to run configure and build the library using make.
The configure script gives you a great deal of control over how you configure your Connector/ODBC build. Typically you do this using options on the configure command line. You can also affect configure using certain environment variables. For a list of options and environment variables supported by configure, run this command:
shell> ./configure --help
Some of the more commonly used configure options are described here:
To compile Connector/ODBC, you need to supply the MySQL
client include and library files path using the
--with-mysql-path=
option, where DIRDIR is the
directory where MySQL is installed.
MySQL compile options can be determined by running
.
DIR/bin/mysql_config
Supply the standard header and library files path for your
ODBC Driver Manager (iODBC or
unixODBC).
If you are using iODBC and
iODBC is not installed in its
default location (/usr/local),
you might have to use the
--with-iodbc=
option, where DIRDIR is the
directory where iODBC is installed.
If the iODBC headers do not reside
in
,
you can use the
DIR/include--with-iodbc-includes=
option to specify their location.
INCDIR
The applies to libraries. If they are not in
,
you can use the
DIR/lib--with-iodbc-libs=
option.
LIBDIR
If you are using unixODBC, use the
--with-unixODBC=
option (case sensitive) to make
configure look for
DIRunixODBC instead of
iODBC by default,
DIR is the directory where
unixODBC is installed.
If the unixODBC headers and
libraries aren't located in
and
DIR/include,
use the
DIR/lib--with-unixODBC-includes=
and
INCDIR--with-unixODBC-libs=
options.
LIBDIR
You might want to specify an installation prefix other
than /usr/local. For example, to
install the Connector/ODBC drivers in
/usr/local/odbc/lib, use the
--prefix=/usr/local/odbc option.
The final configuration command looks something like this:
shell>./configure --prefix=/usr/local \--with-iodbc=/usr/local \--with-mysql-path=/usr/local/mysql
There are a number of other options that you need, or want, to set when configuring the Connector/ODBC driver before it is built.
To link the driver with MySQL thread safe client libraries
libmysqlclient_r.so or
libmysqlclient_r.a, you must specify
the following configure option:
--enable-thread-safe
and can be disabled (default) using
--disable-thread-safe
This option enables the building of the driver thread-safe
library libmyodbc3_r.so from by
linking with MySQL thread-safe client library
libmysqlclient_r.so (The extensions
are OS dependent).
If the compilation with the thread-safe option fails, it
may be because the correct thread-libraries on the system
could not be located. You should set the value of
LIBS to point to the correct thread
library for your system.
LIBS="-lpthread" ./configure ..
You can enable or disable the shared and static versions of Connector/ODBC using these options:
--enable-shared[=yes/no] --disable-shared --enable-static[=yes/no] --disable-static
By default, all the binary distributions are built as
non-debugging versions (configured with
--without-debug).
To enable debugging information, build the driver from
source distribution and use the
--with-debug option when you run
configure.
This option is available only for source trees that have been obtained from the Subversion repository. This option does not apply to the packaged source distributions.
By default, the driver is built with the
--without-docs option. If you would like
the documentation to be built, then execute
configure with:
--with-docs
To build the driver libraries, you have to just execute make.
shell> make
If any errors occur, correct them and continue the build
process. If you aren't able to build, then send a detailed
email to <myodbc@lists.mysql.com> for further
assistance.
On most platforms, MySQL does not build or support
.so (shared) client libraries by default.
This is based on our experience of problems when building
shared libraries.
In cases like this, you have to download the MySQL distribution and configure it with these options:
--without-server --enable-shared
To build shared driver libraries, you must specify the
--enable-shared option for
configure. By default,
configure does not enable this option.
If you have configured with the
--disable-shared option, you can build the
.so file from the static libraries using
the following commands:
shell>cd mysql-connector-odbc-3.51.01shell>makeshell>cd drivershell>CC=/usr/bin/gcc \$CC -bundle -flat_namespace -undefined error \-o .libs/libmyodbc3-3.51.01.so \catalog.o connect.o cursor.o dll.o error.o execute.o \handle.o info.o misc.o myodbc3.o options.o prepare.o \results.o transact.o utility.o \-L/usr/local/mysql/lib/mysql/ \-L/usr/local/iodbc/lib/ \-lz -lc -lmysqlclient -liodbcinst
Make sure to change -liodbcinst to
-lodbcinst if you are using
unixODBC instead of
iODBC, and configure the library paths
accordingly.
This builds and places the
libmyodbc3-3.51.01.so file in the
.libs directory. Copy this file to the
Connector/ODBC library installation directory
(/usr/local/lib (or the
lib directory under the installation
directory that you supplied with the
--prefix).
shell>cd .libsshell>cp libmyodbc3-3.51.01.so /usr/local/libshell>cd /usr/local/libshell>ln -s libmyodbc3-3.51.01.so libmyodbc3.so
To build the thread-safe driver library:
shell>CC=/usr/bin/gcc \$CC -bundle -flat_namespace -undefined error-o .libs/libmyodbc3_r-3.51.01.socatalog.o connect.o cursor.o dll.o error.o execute.ohandle.o info.o misc.o myodbc3.o options.o prepare.oresults.o transact.o utility.o-L/usr/local/mysql/lib/mysql/-L/usr/local/iodbc/lib/-lz -lc -lmysqlclient_r -liodbcinst
To install the driver libraries, execute the following command:
shell> make install
That command installs one of the following sets of libraries:
For Connector/ODBC 3.51:
libmyodbc3.so
libmyodbc3-3.51.01.so, where 3.51.01
is the version of the driver
libmyodbc3.a
For thread-safe Connector/ODBC 3.51:
libmyodbc3_r.so
libmyodbc3-3_r.51.01.so
libmyodbc3_r.a
For MyODBC 2.5.0:
libmyodbc.so
libmyodbc-2.50.39.so, where 2.50.39
is the version of the driver
libmyodbc.a
For more information on build process, refer to the
INSTALL file that comes with the source
distribution. Note that if you are trying to use the
make from Sun, you may end up with errors.
On the other hand, GNU gmake should work
fine on all platforms.
To run the basic samples provided in the distribution with the libraries that you built, use the following command:
shell> make test
Before running the tests, create the DSN 'myodbc3' in
odbc.ini and set the environment variable
ODBCINI to the correct
odbc.ini file; and MySQL server is
running. You can find a sample odbc.ini
with the driver distribution.
You can even modify the
samples/run-samples script to pass the
desired DSN, UID, and PASSWORD values as the command-line
arguments to each sample.
To build the driver on Mac OS X (Darwin), make use of the following configure example:
shell>./configure --prefix=/usr/local--with-unixODBC=/usr/local--with-mysql-path=/usr/local/mysql--disable-shared--enable-gui=no--host=powerpc-apple
The command assumes that the unixODBC and
MySQL are installed in the default locations. If not,
configure accordingly.
On Mac OS X, --enable-shared builds
.dylib files by default. You can build
.so files like this:
shell>makeshell>cd drivershell>CC=/usr/bin/gcc \$CC -bundle -flat_namespace -undefined error-o .libs/libmyodbc3-3.51.01.so *.o-L/usr/local/mysql/lib/-L/usr/local/iodbc/lib-liodbcinst -lmysqlclient -lz -lc
To build the thread-safe driver library:
shell>CC=/usr/bin/gcc \$CC -bundle -flat_namespace -undefined error-o .libs/libmyodbc3-3.51.01.so *.o-L/usr/local/mysql/lib/-L/usr/local/iodbc/lib-liodbcinst -lmysqlclienti_r -lz -lc -lpthread
Make sure to change the -liodbcinst to
-lodbcinst in case of using
unixODBC instead of
iODBC and configure the libraries path
accordingly.
In Apple's version of GCC, both cc and gcc are actually symbolic links to gcc3.
Copy this library to the $prefix/lib
directory and symlink to libmyodbc3.so.
You can cross-check the output shared-library properties using this command:
shell> otool -LD .libs/libmyodbc3-3.51.01.so
To build the driver on HP-UX 10.x or 11.x, make use of the following configure example:
If using cc:
shell>CC="cc" \CFLAGS="+z" \LDFLAGS="-Wl,+b:-Wl,+s" \./configure --prefix=/usr/local--with-unixodbc=/usr/local--with-mysql-path=/usr/local/mysql/lib/mysql--enable-shared--enable-thread-safe
If using gcc:
shell>CC="gcc" \LDFLAGS="-Wl,+b:-Wl,+s" \./configure --prefix=/usr/local--with-unixodbc=/usr/local--with-mysql-path=/usr/local/mysql--enable-shared--enable-thread-safe
Once the driver is built, cross-check its attributes using
chatr .libs/libmyodbc3.sl to determine
whether you need to have set the MySQL client library path
using the SHLIB_PATH environment variable.
For static versions, ignore all shared-library options and run
configure with the
--disable-shared option.
To build the driver on AIX, make use of the following configure example:
shell>./configure --prefix=/usr/local--with-unixodbc=/usr/local--with-mysql-path=/usr/local/mysql--disable-shared--enable-thread-safe
For more information about how to build and set up the static and shared libraries across the different platforms refer to ' Using static and shared libraries across platforms'.
You should read this section only if you are interested in helping us test our new code. If you just want to get MySQL Connector/ODBC up and running on your system, you should use a standard release distribution.
To be able to access the Connector/ODBC source tree, you must have Subversion installed. Subversion is freely available from http://subversion.tigris.org/.
To build from the source trees, you need the following tools:
autoconf 2.52 (or newer)
automake 1.4 (or newer)
libtool 1.4 (or newer)
m4
The most recent development source tree is available from our public Subversion trees at http://dev.mysql.com/tech-resources/sources.html.
To checkout out the Connector/ODBC sources, change to the directory where you want the copy of the Connector/ODBC tree to be stored, then use the following command:
shell> svn co http://svn.mysql.com/svnpublic/connector-odbc3
You should now have a copy of the entire Connector/ODBC source
tree in the directory connector-odbc3. To
build from this source tree on Unix or Linux follow these steps:
shell>cd connector-odbc3shell>aclocalshell>autoheadershell>autoconfshell>automake;shell>./configure # Add your favorite options hereshell>make
For more information on how to build, refer to the
INSTALL file located in the same directory.
For more information on options to configure,
see
Section 26.1.2.5.1, “Typical configure Options”
When the build is done, run make install to install the Connector/ODBC 3.51 driver on your system.
If you have gotten to the make stage and the
distribution does not compile, please report it to
<myodbc@lists.mysql.com>.
On Windows, make use of Windows Makefiles
WIN-Makefile and
WIN-Makefile_debug in building the driver.
For more information, see
Section 26.1.2.4, “Installing Connector/ODBC from a Source Distribution on Windows”.
After the initial checkout operation to get the source tree, you should run svn update periodically update your source according to the latest version.
Before you connect to a MySQL database using the Connector/ODBC driver you must configure an ODBC Data Source Name. The DSN associates the various configuration parameters required to communicate with a database to a specific name. You use the DSN in an application to communicate with the database, rather than specifying individual parameters within the application itself. DSN information can be user specific, system specific, or provided in a special file. ODBC data source names are configured in different ways, depending on your platform and ODBC driver.
A Data Source Name associates the configuration parameters for communicating with a specific database. Generally a DSN consists of the following parameters:
In addition, different ODBC drivers, including Connector/ODBC, may accept additional driver-specific options and parameters.
There are three types of DSN:
A System DSN is a global DSN definition that is available to any user and application on a particular system. A System DSN can normally only be configured by a systems administrator, or by a user who has specific permissions that let them create System DSNs.
A User DSN is specific to an individual user, and can be used to store database connectivity information that the user regularly uses.
A File DSN uses a simple file to define the DSN configuration. File DSNs can be shared between users and machines and are therefore more practical when installing or deploying DSN information as part of an application across many machines.
DSN information is stored in different locations depending on your platform and environment.
The ODBC Data Source Administrator within
Windows enables you to create DSNs, check driver installation
and configure ODBC systems such as tracing (used for debugging)
and connection pooling.
Different editions and versions of Windows store the
ODBC Data Source Administrator in different
locations depending on the version of Windows that you are
using.
To open the ODBC Data Source Administrator in
Windows Server 2003:
On the Start menu, choose
Administrative Tools, and then click
Data Sources (ODBC).
To open the ODBC Data Source Administrator in
Windows 2000 Server or Windows 2000 Professional:
On the Start menu, choose
Settings, and then click Control
Panel.
In Control Panel, click
Administrative Tools.
In Administrative Tools, click
Data Sources (ODBC).
To open the ODBC Data Source Administrator on
Windows XP:
On the Start menu, click Control
Panel.
In the Control Panel when in
Category View click Performance
and Maintenance and then click
Administrative Tools.. If you are viewing
the Control Panel in Classic
View, click Administrative
Tools.
In Administrative Tools, click
Data Sources (ODBC).
Irrespective of your Windows version, you should be presented
the ODBC Data Source Administrator window:

Within Windows XP, you can add the Administrative
Tools folder to your menu
to make it easier to locate the ODBC Data Source Administrator.
To do this:
Right click on the menu.
Select Properties.
Click .
Select the tab.
Within Start menu items, within the
System Administrative Tools section,
select Display on the All Programs menu.
Within both Windows Server 2003 and Windows XP you may want to
permanently add the ODBC Data Source
Administrator to your
menu. To do this, locate the Data Sources
(ODBC) icon using the methods shown, then right-click
on the icon and then choose .
To add and configure a new Connector/ODBC data source on
Windows, use the ODBC Data Source
Administrator:
Open the ODBC Data Source
Administrator.
To create a System DSN (which will be available to all
users) , select the System DSN tab. To
create a User DSN, which will be unique only to the
current user, click the
button.
You will need to select the ODBC driver for this DSN.

Select MySQL ODBC 3.51 Driver, then
click Finish.
You now need to configure the specific fields for the DSN
you are creating through the Add Data Source
Name dialog.

In the Data Source Name box, enter the
name of the data source you want to access. It can be any
valid name that you choose.
In the Description box, enter some text
to help identify the connection.
In the Server field, enter the name of
the MySQL server host that you want to access. By default,
it is localhost.
In the User field, enter the user name
to use for this connection.
In the Password field, enter the
corresponding password for this connection.
The Database popup should automatically
populate with the list of databases that the user has
permissions to access.
Click to save the DSN.
A completed DSN configuration may look like this:

You can verify the connection using the parameters you have
entered by clicking the button. If
the connection could be made successfully, you will be
notified with a Success; connection was
made! dialog.
If the connection failed, you can obtain more information on the test and why it may have failed by clicking the button to show additional error messages.
You can configure a number of options for a specific DSN by using either the or tabs in the DSN configuration dialog.
The dialog can be seen below.

The three options you can configure are:
Port sets the TCP/IP port number to use
when communicating with MySQL. Communication with MySQL
uses port 3306 by default. If your server is configured to
use a different TCP/IP port, you must specify that port
number here.
Socket sets the name or location of a
specific socket or Windows pipe to use when communicating
with MySQL.
Initial Statement defines an SQL
statement that will be executed when the connection to
MySQL is opened. You can use this to set MySQL options for
your connection, such as disabling autocommit.
Character Set is a popup list from
which you can select the default character set to be used
with this connection. The Character Set option was added
in 3.5.17.
The tab enables you to configure Connector/ODBC connection parameters. Refer to Section 26.1.3.5, “Connector/ODBC Connection Parameters”, for information about the meaning of these options.

This section answers Connector/ODBC connection-related questions.
While configuring a Connector/ODBC
DSN, a Could Not Load Translator or Setup
Library error occurs
For more information, refer to
MS
KnowledgeBase Article(Q260558). Also, make sure
you have the latest valid ctl3d32.dll
in your system directory.
On Windows, the default myodbc3.dll
is compiled for optimal performance. If you want to debug
Connector/ODBC 3.51 (for example, to enable tracing), you
should instead use myodbc3d.dll. To
install this file, copy myodbc3d.dll
over the installed myodbc3.dll file.
Make sure to revert back to the release version of the
driver DLL once you are done with the debugging because
the debug version may cause performance issues. Note that
the myodbc3d.dll isn't included in
Connector/ODBC 3.51.07 through 3.51.11. If you are using
one of these versions, you should copy that DLL from a
previous version (for example, 3.51.06).
For MyODBC 2.50, myodbc.dll and
myodbcd.dll are used instead.
To configure a DSN on Mac OS X you can either use the
myodbc3i utility, edit the
odbc.ini file within the
Library/ODBC directory of the user or the
should use the ODBC Administrator. If you have Mac OS X 10.2 or
earlier, refer to
Section 26.1.3.4, “Configuring a Connector/ODBC DSN on Unix”.
Select whether you want to create a User DSN or a System DSN. If
you want to add a System DSN, you may need to authenticate with
the system. You must click the padlock and enter a user and
password with administrator privileges.
There are known issues with the OS X ODBC Administrator and
Connector/ODBC that may prevent you from creating a DSN using
this method. In this case you should use the command-line or
edit the odbc.ini file directly. Note
that existing DSNs or those that you create via the
myodbc3i tool can still be checked and
edited using ODBC Administrator.
To create a DSN using the myodbc3i utility, you need only specify the DSN type and the DSN connection string. For example:
$ myodbc3i -a -s -t"DSN=mydb;DRIVER=MySQL ODBC 3.51 Driver;SERVER=mysql;USER=username;PASSWORD=pass"
To use ODBC Administrator:
Open the ODBC Administrator from the
Utilities folder in the
Applications folder.

On the User DSN or System DSN panel, click
Select the Connector/ODBC driver and click .
You will be presented with the Data Source
Name dialog. Enter The Data Source
Name and an optional
Description for the DSN.

Click to add a new keyword/value
pair to the panel. You should configure at least four pairs
to specify the server,
username, password and
database connection parameters. See
Section 26.1.3.5, “Connector/ODBC Connection Parameters”.
Click to add the DSN to the list of configured data source names.
A completed DSN configuration may look like this:

You can configure additional ODBC options to your DSN by adding further keyword/value pairs and setting the corresponding values. See Section 26.1.3.5, “Connector/ODBC Connection Parameters”.
On Unix, you configure DSN entries directly
in the odbc.ini file. Here is a typical
odbc.ini file that configures
myodbc and myodbc3 as the
DSN names for MyODBC 2.50 and Connector/ODBC 3.51, respectively:
; ; odbc.ini configuration for Connector/ODBC and Connector/ODBC 3.51 drivers ; [ODBC Data Sources] myodbc = MyODBC 2.50 Driver DSN myodbc3 = MyODBC 3.51 Driver DSN [myodbc] Driver = /usr/local/lib/libmyodbc.so Description = MyODBC 2.50 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = [myodbc3] Driver = /usr/local/lib/libmyodbc3.so Description = Connector/ODBC 3.51 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = [Default] Driver = /usr/local/lib/libmyodbc3.so Description = Connector/ODBC 3.51 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET =
Refer to the Section 26.1.3.5, “Connector/ODBC Connection Parameters”, for the list of connection parameters that can be supplied.
If you are using unixODBC, you can use the
following tools to set up the DSN:
ODBCConfig GUI tool(HOWTO: ODBCConfig)
odbcinst
In some cases when using unixODBC, you might
get this error:
Data source name not found and no default driver specified
If this happens, make sure the ODBCINI and
ODBCSYSINI environment variables are pointing
to the right odbc.ini file. For example, if
your odbc.ini file is located in
/usr/local/etc, set the environment
variables like this:
export ODBCINI=/usr/local/etc/odbc.ini export ODBCSYSINI=/usr/local/etc
You can specify the parameters in the following tables for
Connector/ODBC when configuring a DSN. Users on Windows can use
the Options and Advanced panels when configuring a DSN to set
these parameters; see the table for information on which options
relate to which fields and checkboxes. On Unix and Mac OS X, use
the parameter name and value as the keyword/value pair in the
DSN configuration. Alternatively, you can set these parameters
within the InConnectionString argument in the
SQLDriverConnect() call.
| Parameter | Default Value | Comment |
|---|---|---|
user | ODBC (on Windows) | The username used to connect to MySQL. |
uid | ODBC (on Windows) | Synonymous with user. Added in 3.51.16. |
server | localhost | The hostname of the MySQL server. |
database | The default database. | |
option | 0 | Options that specify how Connector/ODBC should work. See below. |
port | 3306 | The TCP/IP port to use if server is not
localhost. |
stmt | A statement to execute when connecting to MySQL. | |
password | The password for the user account on
server. | |
pwd | Synonymous with password. Added in 3.51.16. | |
socket | The Unix socket file or Windows named pipe to connect to if
server is
localhost. | |
sslca | The path to a file with a list of trust SSL CAs. Added in 3.51.16. | |
sslcapath | The path to a directory that contains trusted SSL CA certificates in PEM format. Added in 3.51.16. | |
sslcert | The name of the SSL certificate file to use for establishing a secure connection. Added in 3.51.16. | |
sslcipher | A list of allowable ciphers to use for SSL encryption. The cipher list
has the same format as the openssl
ciphers command Added in 3.51.16. | |
sslkey | The name of the SSL key file to use for establishing a secure connection. Added in 3.51.16. | |
charset | The character set to use for the connection. Added in 3.51.17. |
The SSL configuration parameters can also be automatically
loaded from a my.ini or
my.cnf file.
The option argument is used to tell
Connector/ODBC that the client isn't 100% ODBC compliant. On
Windows, you normally select options by toggling the checkboxes
in the connection screen, but you can also select them in the
option argument. The following options are
listed in the order in which they appear in the Connector/ODBC
connect screen: