Mac OS X has never had a large need for ODBC administrators on Mac: There are few tools which consume ODBC drivers. But if you want to create a driver, you’ll need to know where to place your sample DSNs. Previously, ODBC Administrator came standard with the Mac operating system but due to low market uptake on Mac ODBC, Apple stopped shipping it after 10.6 (Snow Leopard). But there was a need, particularly in enterprise, and Apple’s omission led to the introduction of third-party driver administrator roles, and that led to a growing cloud of confusion with driver administrators on Mac.

Presently, there are three main ODBC administrators for Mac: ODBC Administrator, iODBC, and ODBC Manager . The first is the updated version of what Apple previously included standard in the OS. Third-party vendors developed the other iODBC and ODBC Manager tools. The great dilemma of choosing is that all three fulfill similar purposes: They are free to download and perform the general task of managing your ODBC drivers, with minor differences between them. For a general user, the tools are not particularly differentiated.

However, things are different from a developer standpoint, or from a user perspective when that user has more than one driver manager installed. The three drivers store DSN configurations in slightly varying locations which may lead to unexpected user experiences. The Developer/User needs to know about these use-case nuances to get the expected result.

Driver administrator tools look through a hierarchy of files to determine available DSN configurations. For user DSNs, all three administrator tools first inspect the ODBCINI environment variable to see if it points to a suitable file. ODBC Administrator and ODBC Manager then look for ~/Library/ODBC/odbc.ini, while iODBC looks for ~/.odbc.ini followed by ~/Library/ODBC/odbc.ini. ODBC Manager also has an interesting behavior: If it detects the presence of ~/.odbc.ini, it will prompt whether you would like to “Fix it.” If you do decide to “fix it,” ODBC Manager will copy all the DSNs from ~/.odbc.ini into ~/Library/ODBC/odbc.ini, and then delete the ~/.odbc.ini file. If you choose not to “fix it,” ODBC Manager ignores ~/.odbc.ini. All three ODBC administrator tools employ the same system DSN hierarchy, and look first for for /Library/ODBC/odbc.ini, and then /etc/odbc.ini.

    ODBC Administrator iODBC ODBC Manager

1 ODBCINI environment variable
2 ~/Library/ODBC/odbc.ini ~/.odbc.ini ~/Library/ODBC/odbc.ini
3   ~/Library/ODBC/odbc.ini  

1 /Library/ODBC/odbc.ini
2 /etc/odbc.ini

DSN Search hierarchy for available ODBC Administrator tools by User DSN and System DSN.

In terms of obtaining the available drivers, all three driver managers source the driver list from the same location: /Library/ODBC/odbcinst.ini. Now that that’s clear (!), you know where to place both your DSN and driver.