Connecting ODBC applications to MySQL
Contents
- Installing the MySQL ODBC driver
- Configuring an ODBC data source
- Connecting your application to MySQL
Installing the MySQL ODBC driver
- Download the MySQL ODBC driver for your Windows platform.
- Install and license the MySQL ODBC driver on the machine where your client application is installed.
For example, if you want to analyse MySQL data in Excel, install the MySQL ODBC driver on the machine where Excel is installed.
To do this, execute the file distribution that you downloaded in the previous step, and follow the on-screen instructions.
The install program starts the Easysoft License Manager, because you cannot use your Easysoft product until a license is obtained.
The following types of license are available:
- Free time-limited trial license, which gives you free and unrestricted use of the product for a limited period (usually 14 days).
- Full license if you have purchased the product. On purchasing the product, you are given an authorization code, which you use to obtain a license.
- In Easysoft License Manager, enter your details.
Complete the Name, E-Mail Address, and Company fields.
The E-Mail Address must be the same as the address used to register and download from the Easysoft web site or you will be unable to obtain trial licenses.
- Choose Request License.
You're asked for a license type.
- Do one of the following:
- For a trial license, choose Time Limited Trial and then choose Next.
The License Manager asks what software you are licensing. Select your product from the drop-down list and then choose Next.
- If you have obtained an authorization code for a purchased license, select Non-expiring License and then choose Next.
The License Manager requests your authorization code.
Enter the authorization code and then choose Next.
- For a trial license, choose Time Limited Trial and then choose Next.
- The License Manager displays a summary of the information you entered and allows you to choose the method of applying for your license.
- Do one of the following:
- Choose On-line Request if your machine is connected to the internet and can make outgoing connections to port 8884.
The License Manager then sends a request to the Easysoft license server to activate your license key automatically. This is the quickest method and results in your details being entered immediately into our support database.
- The remaining three options (Email Request, Print Request, and View Request) are all ways to obtain a license if your machine is off-line (does not have a connection to the internet).
Each of these methods involves providing Easysoft with information including your machine number (a number unique to your machine) and then waiting to receive your license key.
Instead of emailing your details to Easysoft, you can enter them directly at the Easysoft web site and your license key will be emailed to you automatically.
To use this method, choose View Request, and then visit:
In the licensing page, enter your machine number (and authorization code for a purchased license), choose Submit and your license key will be emailed to you.
When you receive the license key, you can activate it either by double-clicking the email attachment or by choosing Enter License on the License Manager main screen and pasting the license key into the dialog box.
- Choose On-line Request if your machine is connected to the internet and can make outgoing connections to port 8884.
- Choose Finish to exit the License Manager.
The installation is complete.
Configuring an ODBC data source
Before you can use the MySQL ODBC driver to connect your application to MySQL, you need to configure an ODBC data source. An ODBC data source stores the connection details for the target database (in this case, MySQL) and the ODBC driver that is required to connect to it (in this case, the MySQL ODBC driver).
You configure ODBC data sources in ODBC Data Source Administrator, which is included with Windows. There are two versions of ODBC Data Source Administrator on this platform. The version of ODBC Data Source Administrator that you need to run depends on whether the application you want to connect to MySQL is 32-bit or 64-bit. For the applications covered in this article, refer to the following table to find out the application's architecture.
Application | Notes |
---|---|
Access | There is both a 32-bit and a 64-bit version of Access. To find out which version of Access you have, start Access, and then start Windows Task Manager. In Task Manager, choose the Processes tab. Search for MSACCESS.EXE in the list. If the process name is MSACCESS.EXE *32, Microsoft Access is 32-bit. If the process name is MSACCESS.EXE, Microsoft Access is 64-bit. |
Excel | There is both a 32-bit and a 64-bit version of Excel. To find out which version of Excel you have, start Excel, and then start Windows Task Manager. In Task Manager, choose the Processes tab. Search for Excel.exe in the list. If this process name is followed by *32, your version of Excel is 32-bit. Otherwise, your version of Excel is 64-bit. |
Oracle | The Oracle component that interacts with the MySQL ODBC driver is called DG4ODBC. There is both a 32-bit and a 64-bit version of DG4ODBC. To find out which version of DG4ODBC you have, start the Windows Task Manager and choose the Processes tab. In a Command Prompt window, type dg4odbc --help . In the Windows Task Manager, search for the DG4ODBC process. If the Image Name is dg4odbc.exe *32 DG4ODBC is 32-bit. If the Image Name is dg4odbc.exe DG4ODBC is 64-bit. Press CTRL+C in the Command Prompt window, when you have used the Windows Task Manager to find out DG4ODBC's architecture. |
SQL Server |
There is both a 32-bit and a 64-bit version of SQL Server. To find out which version of SQL Server you have, connect to your SQL Server instance, and then run this SQL statement:
select SERVERPROPERTY('edition') |
If you have a 64-bit application, you need to run 64-bit version of ODBC Data Source Administrator. To do this, open Administrative Tools in Control Panel, and then open Data Sources (ODBC). (On Windows Server 2003 and earlier, the Control Panel applet that launches ODBC Data Source Administrator is labelled Data Sources. On Windows 8 and later, the Control Panel applet is labelled ODBC Data Sources (64-bit).)
If you have a 32-bit application, you need to run the 32-bit version of ODBC Data Source Administrator. To do this, in the Windows Run dialog box, enter:
%windir%\syswow64\odbcad32.exe
Use ODBC Data Source Administrator to create a MySQL ODBC driver data source:
- Choose the System DSN tab, and then choose Add.
- In the Create New Data Source dialog box, choose Easysoft ODBC-MySQL Driver, and then choose Finish.
- Complete these fields Easysoft ODBC-MySQL Driver DSN Setup dialog box:
Setting Value DSN MYSQL
User Name The name of your MySQL user. Password The password for your MySQL user. Server The host name or IP address of the machine on which your MySQL server is running. - Use the Test button to verify that you can successfully connect to your MySQL database.
Connecting your application to MySQL
Microsoft Access
Microsoft Access uses an ODBC driver to interact with an external data source. ODBC is a data access technology, the Microsoft implementation of which is included with Windows. You can use the MySQL ODBC driver to connect Microsoft Access to a MySQL Database, enabling you to retrieve and update MySQL data from a Microsoft Access front end.
- Open your Microsoft Access database.
- Do one of the following:
- For Microsoft Access 2003 and earlier, on the File Menu, choose Get External Data > Link Tables.
The Link dialog box is displayed.
- For Microsoft Access 2007, on the External Data tab, choose More > ODBC Database.
The Get External Data wizard starts.
- For Microsoft Access 2010 and later, on the External Data tab, choose ODBC Database.
The Get External Data wizard starts.
- For Microsoft Access 2003 and earlier, on the File Menu, choose Get External Data > Link Tables.
- Do one of the following:
- For Microsoft Access 2003 and earlier, choose ODBC Databases from the Files of type list.
- For Microsoft Access 2007 and later, choose Link to the data source by creating a linked table, and then choose OK.
The Select Data Source dialog box is displayed.
- Choose your ODBC data source from the Machine Data Source list, and then choose OK.
The Link Tables dialog box is displayed.
- Choose the table that you want to link and then choose OK.
- Choose the linked table in Microsoft Access, and then choose RETURN to work with the linked data.
Connecting Excel to MySQL
Follow these steps to return data from MySQL to Microsoft Excel by using Microsoft Query:
- Do one of the following:
- For Excel 2007 and later, on the Data tab, choose Get External Data. In the From Other Sources group, choose From Microsoft Query.
- For Excel 2003 and earlier, on the Data menu, choose Import External Data, and then choose New Database Query.
The New Database Query command uses Microsoft Query to import data. Microsoft Query is an optional feature, which by default is not installed. If you do not have Microsoft Query installed, choosing New Database Query will prompt you to install it. To do this, in Control Panel, choose Programs and Features (or Add or Remove Programs). Choose Microsoft Office (if you installed Excel as part of Office) or Microsoft Excel, and then choose Change. Follow the instructions on screen. Select Choose advanced customization of applications during the Setup wizard if this option is present for your version of Office or Excel. Microsoft Query is located under Office Tools.
When you have installed Microsoft Query, repeat step 1.
- In the Choose Data Source dialog box, choose your MySQL ODBC driver data source from the list, and then choose OK.
- Choose OK when the message "This data source contains no visible tables." is displayed.
- In the Query Wizard, choose Cancel.
- Choose Yes when prompted whether to continue editing this query in Microsoft Query.
- In the Add Tables dialog box, choose Close.
- Choose the SQL button.
- In the SQL statement dialog box, enter a SQL query. For example:
select * from employees
- On the File menu choose, Return data to Excel.
- Choose a location for the data on your worksheet when prompted.
Connecting Oracle to MySQL
The following instructions show you how to connect Oracle on Windows to MySQL. For further information about DG4ODBC, refer to our DG4ODBC for Windows tutorial.
- Create a DG4ODBC init file. To do this, change to the
%ORACLE_HOME%\hs\admin
directory. Create a copy of the fileinitdg4odbc.ora
. Name the new fileinitmysql.ora
.Note In these instructions, replace
%ORACLE_HOME%
with the location of your OracleHOME
directory. For example,C:\oraclexe\app\oracle\product\11.2.0\server
. - Ensure these parameters and values are present in your init file:
HS_FDS_CONNECT_INFO = my_mysql_odbc_dsn
Replace
my_mysql_odbc_dsn
with the name of a MySQL ODBC driver data source that connects to the target MySQL server. For example:HS_FDS_CONNECT_INFO = "32-bit MySQL System"
If your MySQL server does not require you to supply a user name and a password, include
IgnoreAuth=Yes
in theHS_FDS_CONNECT_INFO
parameter value. For example:HS_FDS_CONNECT_INFO = "32-bit MySQL System;IgnoreAuth=Yes"
- Add this line to increase Oracle MySQL compatibility:
HS_FDS_QUOTE_IDENTIFIER = FALSE
- Comment out the line that enables DG4ODBC tracing. For example:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Add an entry to
%ORACLE_HOME%\network\admin\listener.ora
that creates aSID_NAME
for DG4ODBC. For example:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=mysql) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- Add a DG4ODBC entry to
%ORACLE_HOME%\network\admin\tnsnames.ora
that specifies theSID_NAME
created in the previous step. For example:MYSQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = mysql) ) (HS = OK) )
Replace
oracle_host
with the host name of your Oracle machine. - Start (or restart) the Oracle Listener:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Connect to your Oracle database in SQL*Plus.
- In SQL*Plus, create a database link for the target MySQL server. For example:
CREATE PUBLIC DATABASE LINK mysqllink CONNECT TO "my_mysql_user" IDENTIFIED by "my_mysql_password" USING 'mysql';
Or, if your MySQL server does not require you to supply a user name and a password:
CREATE PUBLIC DATABASE LINK mysqllink USING 'mysql';
Notes
- If you have problems connecting to MySQL from Oracle, enable DG4ODBC tracing and check the trace files written to the
%ORACLE_HOME%\hs\trace
directory. To enable DG4ODBC tracing, add the lineHS_FDS_TRACE_LEVEL = DEBUG
toinitmysql.ora
and then restart the Oracle listener. If thetrace
directory does not exist, create it. - If you enable ODBC driver Manager tracing, but do not get a trace file or get an empty trace file, change the trace file location to the Windows
TEMP
directory. For example,C:\Windows\Temp\SQL.log
.
Connecting SQL Server (Linked Server or SSIS) to MySQL
Linked Server
These steps show you how to use a linked server to work with MySQL data, just as if you were working with data stored in a SQL Server table:
- In Microsoft SQL Server Management Studio, connect to the SQL Server instance you want to create the linked server against.
You need to log on with an account that is a member of the SQL Server
sysadmin
fixed server role to create a linked server. - Right-click Server Objects > Linked Servers > Providers > MSDASQL. From the pop-up menu, choose Properties.
- Ensure the following provider options are checked:
- Nested queries
- Level zero only
- Allow inprocess
- Supports 'Like' Operator
The other provider options should be unchecked.
- Right-click Server Objects. From the pop-up menu choose New > Linked Server.
- In the Linked server box, enter
MYSQL
. - From the Provider list, choose Microsoft OLE DB Provider for ODBC drivers.
- In the Data source box, enter the name of your MySQL ODBC data source, and then choose OK.
- Choose the Security page.
- Choose Be made using this security context.
- Type your MySQL user name and password in the spaces provided. Choose OK.
SQL Server verifies the linked server by testing the connection.
- If you get the error "Specified driver could not be loaded due to system error 126: The specified module could not be found," choose Yes when prompted whether to keep the linked server. You need to restart your SQL Server instance before you can use the linked server. If SQL Server was already running when you installed the MySQL ODBC driver, it will not have the latest version of the System
PATH
environment variable. The MySQL ODBC driver Setup program adds entries for the driver to the SystemPATH
. Restarting the instance makes these changes available to SQL Server, allowing it to load the MySQL ODBC driver. - If you made a mistake when specifying the MySQL ODBC driver data source, you get the error "Data source name not found and no default driver specified." If you get this error, choose No when prompted whether to keep the linked server and edit the value in the Data source box.
- If you get the error "Specified driver could not be loaded due to system error 126: The specified module could not be found," choose Yes when prompted whether to keep the linked server. You need to restart your SQL Server instance before you can use the linked server. If SQL Server was already running when you installed the MySQL ODBC driver, it will not have the latest version of the System
- You can query your MySQL data either by using a:
- Four part table name in a distributed query.
A four part table name has the format:
server_name.[database_name].[schema_name].table_name
.For MySQL, you need to omit the database name and schema. For example:
SELECT * from MYSQL...sales_by_film_category
- Pass-through query in an
OPENQUERY
function. For example:SELECT * FROM OPENQUERY(MYSQL, 'SELECT * FROM sales_by_film_category')
SQL Server sends pass-through queries as uninterpreted query strings to the MySQL ODBC driver. This means that SQL Server does not apply any kind of logic to the query or try to estimate what that query will do.
Note The MySQL
TEXT
data type is incompatible with SQL Server. If you attempt to retrieve aTEXT
column, you will get error such as "Requested conversion is not supported." or "Restricted data type attribute violation." To useTEXT
data in SQL Server, you need to convert the data in MySQL to a type that SQL Server does support. For example:SELECT * FROM OPENQUERY(MYSQL, 'SELECT CAST(description AS char(255)) AS description from film where film_id = 1000')
- Four part table name in a distributed query.
SQL Server Integration Services (SSIS)
These instructions assume that you have Microsoft Visual Studio and SQL Server Data Tools for Visual Studio installed.
- Create a
.csv
file namedfilm.csv
with the following contents:film_id,title,description,release_year,language_id,original_language_id,rental_duration,rental_rate,length,replacement_cost,rating,special_features,last_update 1001,"Mad Max: Fury Road","Haunted by his turbulent past, Mad Max believes the best way to survive is to wander alone",2015,1,1,3,"4.99",50,"18.99","NC-17","Trailers,Commentaries,Behind the Scenes","2015-05-08 00:00:01" 1002,"Avengers: Age of Ultron","When Tony Stark tries to jumpstart a dormant peacekeeping program, things go awry",2015,1,1,3,"4.99",50,"18.99","NC-17","Trailers,Commentaries,Behind the Scenes","2015-05-08 00:00:01"
- In Visual Studio, create a new Integration Services Project.
- Drag a Data Flow Task from the Toolbox to the Control Flow tab.
- Choose the Data Flow tab.
- Drag a Flat File Source from the Toolbox to the Data Flow tab, and then press Return.
Flat File Source is under the Other Sources list.
- In the Flat File Source Editor, choose New.
- In the Flat File Connection Manager Editor dialog box, browse for your
.csv
file. - In the text qualifier box, type
"
. - In the Advanced options, change the DataType of the last_update column to
database timestamp [DT_DBTIMESTAMP]
. Choose OK. - In the Error Output section, change the truncation action for description to
Ignore failure
. Choose OK. - Drag an ODBC Destination from the Toolbox to the Data Flow tab, and then press Return.
ODBC Destination is in the Other Destinations list.
- Select the Flat File Source. Drag the blue arrow over to the ODBC Destination.
- Select the ODBC Destination, and then press Return.
- In the ODBC Destination dialog box, choose New.
- In the Configure ODBC Connection Manager dialog box, choose New.
- In the Connection Manager dialog box, choose your MySQL ODBC data source, and then use the OK button to return to the ODBC Source dialog box.
- In the Name of the table or the view list, type
film
. Choose Mappings and then choose OK. - Choose the Start button to insert the records from
film.csv
file into MySQL.