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 implement 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.
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 17, APIs and Libraries chapter.
The MySQL Connector/ODBC is the name for the family of MySQL ODBC drivers
(also 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 MyODBC older than 3.51 can be located in the
corresponding binary or source distribution.
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 MyODBC 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 MyODBC for Unix or Mac OS X if you
have an application that requires an ODBC interface to communicate with
database.. Applications that require ODBC to communicate with MySQL include
ColdFusion, Microsoft Office, and Filemaker Pro.
If you want to install the MyODBC connector on a Unix host, then you must
also install an ODBC manager.
If you have questions that are not answered in this document, please send a
mail message to <myodbc@lists.mysql.com>.
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.
There are currently two version of MyODBC available:
MyODBC 5.0, currently in beta status, has been designed to extend
the functionality of the MyODBC 3.51 driver and incorporate full
support for the functionality in the MySQL 5.0 server release,
including stored procedures and views. Applications using MyODBC
3.51 will be compatible with MyODBC 5.0, while being able to take
advantage of the new features. Features and functionality of the
MyODBC 5.0 driver are not currently included in this guide.
MyODBC 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 MyODBC 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.
Note: From this section onward, the primary focus of this guide is the
MyODBC 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.
18.1.1.2. General Information About ODBC and MyODBC
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.
The MyODBC 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 MyODBC driver to
enable the ODBC API to communicate with the MySQL host.
Processes ODBC function calls or passes them to the driver for
processing.
MyODBC Driver:
The MyODBC 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 18.1.3, “MyODBC 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).
18.1.1.2.2. ODBC Driver Managers
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:
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 MyODBC 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 MyODBC 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 MyODBC
drivers before installation.
18.1.2.1. Where to Get MyODBC
MySQL AB distributes all its products under the General Public License
(GPL). You can get a copy of the latest version of MyODBC binaries and
sources from the MySQL AB Web site
http://dev.mysql.com/downloads/.
Using a binary distribution offers the most straightforward method for
installing MyODBC. 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. See the
Section 18.1.2.4, “Installing MyODBC from a source distribution”.
18.1.2.3.1. Installing MyODBC from a Binary Distribution on
Windows
Before installing the MyODBC 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 website.
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.
18.1.2.3.1.1. Installing the Windows MyODBC Driver using
an installer
The installer packages offer a very simple method for installing the
MyODBC 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 Next 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 Next 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
Next 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
Next to install the necessary
files.
Once the files have copied to your machine, the installation is
complete. Click
Finish to exit the installer.
18.1.2.3.1.2. Installing the Windows MyODBC Driver using
the Zipped DLL package
If you have downloaded the Zipped DLL package then you must install
the individual files required for MyODBC 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 MyODBC Zipped DLL package.
Open a Command Prompt.
Change to the directory created when you unzipped the MyODBC
Zipped DLL package.
Run Install.bat:
C:\> Install.bat
This will copy the necessary files into the default location,
and then register the MyODBC 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 MyODBC 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 MyODBC Zipped DLL package.
Open a Command Prompt.
Change to the directory created when you unzipped the MyODBC
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:
Copy the MyODBC 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:
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\System32
Finally, you must register the MyODBC 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.
18.1.2.3.1.3. Handling Installation Errors
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 MyODBC 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 MyODBC drivers, and re-boot
to normal mode.
18.1.2.3.2. Installing MyODBC from a Binary Distribution on
Unix
There are two methods available for installing MyODBC 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.
18.1.2.3.2.1. Installing MyODBC from a Binary Tarball
Distribution
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 root
shell> gunzip MyODBC-3.51.11-i686-pc-linux.tar.gz
shell> tar xvf MyODBC-3.51.11-i686-pc-linux.tar
shell> cd MyODBC-3.51.11-i686-pc-linux
Read the installation instructions in the
INSTALL-BINARY file and execute these
commands.
18.1.2.3.2.2. Installing MyODBC from an RPM Distribution
To install or upgrade MyODBC from an RPM distribution on Linux,
simply download the RPM distribution of the latest version of MyODBC
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 root
shell> rpm -ivh MyODBC-3.51.12.i386.rpm
If the driver exists, upgrade it like this:
shell> su root
shell> rpm -Uvh MyODBC-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.
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 MyODBC driver enables you to connect
to MySQL databases on any platform through the ODBC interface. You
should only need to install the MyODBC driver when your application
requires an ODBC interface. Applications that require or can use
ODBC (and therefore the MyODBC 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.
18.1.2.3.3.1. Installing the MyODBC Driver
You can install MyODBC on a Mac OS X or Mac OS X Server computer by
using the binary distribution. The package is available as a
compressed disk image (.dmg) file. To
install MyODBC on your computer using this method, 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 Continue
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.
Note that if you want to test a connection to a MySQL database,
you will need location of your MySQL server, and a user and
password to use to create a suitable DSN to test your
installation. Testing the connection is not required to complete
the installation. Once you have read the notice and collected
the necessary information, click
Continue.
MyODBC 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
Continue to approve the license
(you will be asked to confirm that decision) and continue the
installation.
Choose a location to install the MyODBC 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
Continue.
The installer will automatically select the files that need to
be installed on your machine. Click
Install 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
Close to close and quit the
installer.
18.1.2.4. Installing MyODBC from a source distribution
Installing MyODBC from a source distribution gives you greater
flexibility in the contents and installation location of the MyODBC
components. It also enables you to build and install MyODBC on platforms
where a pre-compiled binary is not available.
MyODBC sources are available either as a downloadable package, or
through the revision control system used by the MyODBC developers.
18.1.2.4.1. Installing MyODBC from a Source Distribution on
Windows
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 MyODBC 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/.
18.1.2.4.1.1. Building MyODBC 3.51
MyODBC 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:
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.
If you are using the Subversion tree for compiling, all
Windows-specific Makefiles are
named as Win_Makefile*.
18.1.2.4.1.2. Testing
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 samples
C:\> nmake -f Makefile all
18.1.2.4.1.3. Building MyODBC 2.50
The MyODBC 2.50 source distribution includes VC workspace files. You
can build the driver using these files (.dsp
and .dsw) directly by loading them
from Microsoft Visual Studio 6.0 or higher.
18.1.2.4.2. Installing MyODBC from a Source Distribution on
Unix
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 MyODBC 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. MyODBC is known to
work with the iODBC and
unixODBC managers. See
Section 18.1.1.2.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 10, 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.
18.1.2.4.2.1. Typical
configure Options
The configure script
gives you a great deal of control over how you configure your MyODBC
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 MyODBC, you need to supply the MySQL client include
and library files path using the
--with-mysql-path=DIR
option, where DIR 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=DIR
option, where DIR
is the directory where iODBC is
installed.
If the iODBC headers do not
reside in
DIR/include,
you can use the
--with-iodbc-includes=INCDIR
option to specify their location.
The applies to libraries. If they are not in
DIR/lib,
you can use the
--with-iodbc-libs=LIBDIR
option.
If you are using unixODBC, use
the
--with-unixODBC=DIR
option (case sensitive) to make
configure look
for
unixODBC instead of
iODBC by default,
DIR is the
directory where unixODBC is
installed.
If the unixODBC headers and
libraries aren't located in
DIR/include
and
DIR/lib,
use the
--with-unixODBC-includes=INCDIR
and
--with-unixODBC-libs=LIBDIR
options.
You might want to specify an installation prefix other than
/usr/local. For example, to install the MyODBC drivers in
/usr/local/odbc/lib, use the
--prefix=/usr/local/odbc option.
The final configuration command looks something like this:
There are a number of other options that you need, or want, to set
when configuring the MyODBC 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
MyODBC using these options:
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
18.1.2.4.2.3. Building and Compilation
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.
18.1.2.4.2.4. Building Shared Libraries
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:
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
MyODBC library installation directory (/usr/local/lib
(or the
lib directory under the installation
directory that you supplied with the
--prefix).
shell> cd .libs
shell> cp libmyodbc3-3.51.01.so /usr/local/lib
shell> cd /usr/local/lib
shell> ln -s libmyodbc3-3.51.01.so libmyodbc3.so
To install the driver libraries, execute the following command:
shell> make install
That command installs one of the following sets of libraries:
For MyODBC 3.51:
libmyodbc3.so
libmyodbc3-3.51.01.so, where
3.51.01 is the version of the driver
libmyodbc3.a
For thread-safe MyODBC 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.
18.1.2.4.2.6. Testing MyODBC on Unix
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.
18.1.2.4.2.7. Building MyODBC from Source on Mac OS X
To build the driver on Mac OS X (Darwin), make use of the following
configure example:
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.
18.1.2.4.2.9. Building MyODBC from Source on AIX
To build the driver on AIX, make use of the following
configure example:
18.1.2.4.3. Installing MyODBC from the Development Source
Tree
Caution: 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 MyODBC 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:
To checkout out the Connector/ODBC sources, change to the directory
where you want the copy of the MyODBC 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 MyODBC source tree in the
directory connector-odbc3. To build
from this source tree on Unix or Linux follow these steps:
shell> cd connector-odbc3
shell> aclocal
shell> autoheader
shell> autoconf
shell> automake;
shell> ./configure # Add your favorite options here
shell> make
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 MyODBC 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.
18.1.3.1. Data Source Names
A Data Source Name associates the configuration parameters for
communicating with a specific database. Generally a DSN consists of the
following parameters:
Name
Hostname
Database Name
Login
Password
In addition, different ODBC drivers, including MyODBC, 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 Start menu to
make it easier to locate the ODBC Data Source Administrator. To do this:
Right click on the Start menu.
Select Properties.
Click Customize....
Select the Advanced 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 Start
menu. To do this, locate the Data Sources (ODBC)
icon using the methods shown, then right-click on the icon and then
choose Pin to Start Menu.
18.1.3.2.1. Adding a MyODBC DSN on Windows
To add and configure a new MyODBC 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 Add..
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 OK to save the DSN.
A completed DSN configuration may look like this:
18.1.3.2.2. Checking MyODBC DSN Configuration on Windows
You can verify the connection using the parameters you have entered by
clicking the Test 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
Diagnostics... button to show
additional error messages.
18.1.3.2.3. MyODBC DSN Configuration Options
You can configure a number of options for a specific DSN by using
either the Connect Options or
Advanced tabs in the DSN configuration
dialog.
The Connection Options 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 setting the default character set or
database to use during your connection.
This section answers MyODBC connection-related questions.
While configuring a MyODBC 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 MyODBC
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
MyODBC 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.
18.1.3.3. Configuring a MyODBC DSN on Mac OS X
To configure a DSN on Mac OS X you should use the ODBC Administrator. If
you have Mac OS X 10.2 or earlier, refer to
Section 18.1.3.4, “Configuring a MyODBC 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.
Open the ODBC Administrator from the
Utilities folder in the
Applications folder.
On the User DSN or System DSN panel, click
Add.
Select the MyODBC driver and click
OK.
You will be presented with the Data Source
Name dialog. Enter The Data Source Name
and an optional
Description for the DSN.
Click Add 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 18.1.3.5, “MyODBC Connection Parameters”.
Click OK to add the DSN to the list
of configured data source names.
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 MyODBC 3.51, respectively:
;
; odbc.ini configuration for MyODBC and MyODBC 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 = MyODBC 3.51 Driver DSN
SERVER = localhost
PORT =
USER = root
Password =
Database = test
OPTION = 3
SOCKET =
[Default]
Driver = /usr/local/lib/libmyodbc3.so
Description = MyODBC 3.51 Driver DSN
SERVER = localhost
PORT =
USER = root
Password =
Database = test
OPTION = 3
SOCKET =
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:
You can specify the parameters in the following tables for MyODBC 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.
server
localhost
The hostname of the MySQL server.
database
The default database.
option
0
Options that specify how
MyODBC 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.
socket
The Unix socket file or
Windows named pipe to connect to if
server is
localhost.
The option argument is used to tell MyODBC
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 MyODBC connect screen:
Value
Windows Checkbox
Description
1
Don't
Optimized Column Width
The client can't handle
that MyODBC returns the real width of a column.
2
Return Matching Rows
The client can't
handle that MySQL returns the true value of affected
rows. If this flag is set, MySQL returns “found
rows” instead. You must have MySQL 3.21.14 or
newer to get this to work.
4
Trace Driver Calls To myodbc.log
Make a debug
log in C:\myodbc.log on
Windows, or
/tmp/myodbc.log on Unix variants.
8
Allow Big Results
Don't set any packet
limit for results and parameters.
16
Don't Prompt Upon Connect
Don't prompt for
questions even if driver would like to prompt.
32
Enable Dynamic Cursor
Enable or
disable the dynamic cursor support. (Not allowed in
MyODBC 2.50.)
64
Ignore # in
Table Name
Ignore use of database name in
db_name.tbl_name.col_name.
Tell server to ignore space
after function name and before ‘(’
(needed by PowerBuilder). This makes all function names
keywords.
8192
Force Use of
Named Pipes
Connect with named pipes to a
mysqld server running on NT.
16384
Change BIGINT Columns to Int
Change BIGINT columns to
INT
columns (some applications can't handle
BIGINT).
32768
No Catalog (exp)
Return 'user' as
Table_qualifier and
Table_owner from
SQLTables (experimental).
65536
Read Options From
my.cnf
Read parameters from the
[client] and
[odbc] groups from
my.cnf.
131072
Safe
Add some extra safety checks (should not be
needed but...).
262144
Disable
transaction
Disable transactions.
524288
Save queries to
myodbc.sql
Enable query logging to
c:\myodbc.sql(/tmp/myodbc.sql)
file. (Enabled only in debug mode.)
1048576
Don't Cache Result (forward only
cursors)
Do not cache the results locally in the
driver, instead read from server (mysql_use_result()).
This works only for forward-only cursors. This option is
very important in dealing with large tables when you
don't want the driver to cache the entire result set.
2097152
Force Use Of Forward Only Cursors
Force the use of Forward-only
cursor type. In case of applications setting the default
static/dynamic cursor type, and one wants the driver to
use non-cache result sets, then this option ensures the
forward-only cursor behavior.
To select multiple options, add together their values. For example,
setting option to 12 (4+8) gives you
debugging without packet limits.
The following table shows some recommended
option values for various configurations:
Configuration
Option Value
Microsoft
Access, Visual Basic
3
Driver
trace generation (Debug mode)
4
Microsoft Access (with improved DELETE queries)
35
Large tables with too many rows
2049
Sybase PowerBuilder
135168
Query log generation (Debug mode)
524288
Generate driver trace as well as query log (Debug mode)
524292
Large tables with no-cache
results
3145731
18.1.3.6. Connecting Without a Predefined DSN
You can connect to the MySQL server using SQLDriverConnect, by
specifying the DRIVER name field. Here are
the connection strings for MyODBC using DSN-Less connections:
If your programming language converts backslash followed by whitespace
to a space, it is preferable to specify the connection string as a
single long string, or to use a concatenation of multiple strings that
does not add spaces in between. For example:
Connection pooling enables the ODBC driver to re-use existing
connections to a given database from a pool of connections, instead of
opening a new connection each time the database is accessed. By enabling
connection pooling you can improve the overall performance of your
application by lowering the time taken to open a connection to a
database in the connection pool.
If you encounter difficulties or problems with MyODBC, you should start
by making a log file from the ODBC Manager
and MyODBC. This is called
tracing, and is enabled through the ODBC
Manager. The procedure for this differs for Windows, Mac OS X and Unix.
18.1.3.8.1. Enabling ODBC Tracing on Windows
To enable the trace option on Windows:
The Tracing tab of the ODBC Data
Source Administrator dialog box enables you to configure the way
ODBC function calls are traced.
When you activate tracing from the
Tracing tab, the
Driver Manager logs all ODBC function calls for all
subsequently run applications.
ODBC function calls from applications running before tracing is
activated are not logged. ODBC function calls are recorded in a
log file you specify.
Tracing ceases only after you click Stop
Tracing Now. Remember th