mysql odbc连接 mdb_ODBC 常见数据源配置整理

本文介绍了如何配置ODBC数据源以连接MySQL、SQLServer、Access和Oracle数据库,详细说明了各个数据库的连接参数,并提供了Golang伪代码示例。
摘要由CSDN通过智能技术生成

1. 简介

我们用golang做odbc驱动开发的任务并不多,隔段时间可能会来一个。每次开发会忘记如何配置数据源和对应的数据源链接参数配置。这里做一个整理。

1.1 ODBC和JDBC

ODBC(Open Database Connectivity)是一组对数据库访问的标准API,其最大的优点是以统一的方式处理所有的数据库。

JDBC(Java Database Connectivity)是Java与数据库的接口规范,允许Java程序发送SQL指令并处理结果。比较常见JdbcTemplate

1.2 ODBC配置工具

打开控制面板找到管理工具,当前目录有两个ODBC的配置工具。分别是:ODBC Data Sources (32-bit)、ODBC 数据源(64 位)。顾名思义一个是32位,一个是64位。在配置ACCESS数据源时需要选择32位。

我们也可以直接在系统目录下找到对应的可执行文件。

1)32位:%windir%\syswow64\odbcad32.exe

2)64位:%windir%\system32\odbcad32.exe

题外话:syswow64 目录存放的是32位的程序,system32目录存放的是64位的程序,在注册dll的时候需要注意下。ITDragon 在接触驱动开发之前一直都弄反了。这篇文章做了通俗易懂地解释https://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html

1.3 ODBC 数据源连接配置

网上收集整理,不保证正确性,仅供参考。

数据库

连接参数

MySQL

driver={mysql};database=数据库;uid=账号;pwd=密码;

MSSQL Server

driver={sql server};server=服务器;database=数据库;uid=ITDragon;pwd=密码;

Access

driver={microsoft access driver (*.mdb)};dbq=mdb文件全路径;uid=ITDragon;pwd=密码;

SQLite

driver={SQLite3 ODBC Driver};database=db文件全路径

PostgreSQL

driver={PostgreSQL ANSI};server=服务器;uid=账号;pwd=密码;database=数据库;

DBase

driver={microsoft dbase driver (*.dbf)};driverid=277;dbq=dbf文件全路径;

Oracle

driver={microsoft odbc for oracle};server=服务器;uid=ITDragon;pwd=密码;

MS text

driver={microsoft text driver (* .txt; *.csv)};dbq=文件全路径;extensions=asc,csv,tab,txt;PersistSecurityInfo=false;

Visual Foxpro

driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;

2. MySQL 数据源配置

2.1 配置步骤

第一步:双击ODBC 数据源(64 位),可以选择用户DSN(系统只对当前用户生效),也可以选择系统DSN(能登录当前系统的用户都生效)

第二步:点击添加,选择事先安装好的MySQL ODBC xx Driver 驱动后点击完成。注意不同版本之间对某些sql语法的支持略有不同(之前吃过这个亏,我的环境有问题,客户环境没问题😂😂😂)。

第三步:完善基本链接信息后点击Test,提示链接成功后点击OK完成配置。

b0815f653bf4eaa24cecddfaa049a2ef.png

2.2 链接参数配置

因为ODBC驱动配置已经将数据库的连接地址、账号、密码、数据库都已经配置完成,连接参数只需要指定驱动名称即可:DSN=ITDragon_MySQL

Golang伪代码:

import (

"database/sql"

_ "github.com/alexbrainman/odbc"

)

db, err := sql.Open("odbc", "DSN=ITDragon_MySQL")

if err != nil {

panic(err)

}

defer db.Close()

3. SQLServer 数据源配置

3.1 配置步骤

第一步:双击ODBC 数据源(64 位),可以选择用户DSN(系统只对当前用户生效),也可以选择系统DSN(能登录当前系统的用户都生效)

第二步:点击添加,选择SQL Server。这一项我ITDragon 并没有手动安装,应该是安装SQL Server数据库的时候自动安装上去的。

第三步:键盘输入需要连接的SQLServer服务器,如果是本机,就输入计算机名。如果是远程主机就需要输入IP,Port 。不要点击下拉框,会卡死。

b7ce59dc947fd3fa57751336cdeb9d9b.png

第四步:选择SQL Server验证方式

f6b25458f0f66fc0d525832ae9ab3afb.png

第五步:选择默认数据库,也可以在写sql语句时将表名的全路径写全(我ITDragon 习惯用写全)

e346981335e9087b63ea4e0e51e766f2.png

第六步:可以考虑修改SQL Server的系统消息语言,数据的加密,执行字符数据翻译,修改日志保存路径等。也可以默认。

c2f483522f0ec19d0725d2a143bc14a4.png

第七步:点击完成,弹出“按照以下配置创建新的ODBC数据源”,点击测试数据源,提示测试成功。点击确定完成创建。

3.2 链接参数配置

Golang伪代码:

import (

"database/sql"

_ "github.com/alexbrainman/odbc"

)

db, err := sql.Open("odbc", "driver={sql server};server=DESKTOP-HKC2IA3;DSN=ODBCName;uid=xxx;pwd=xxx;")

if err != nil {

panic(err)

}

defer db.Close()

4. ACCESS 数据源配置

4.1 配置步骤

第一步:双击ODBC Data Sources (32-bit),而不是64位。可以选择用户DSN(系统只对当前用户生效),也可以选择系统DSN(能登录当前系统的用户都生效)

第二步:选择Microsoft Access Driver (*.mdb)。点击数据库下发的选择按照,选择mdb文件,点击确定完成配置。

b2c2b2777ff2151402d6c5374f8d834f.png

4.2 链接参数配置

我们其实可以不用配置Access的数据源,直接用DBQ指定mdb的文件路径,再用pwd输入密码访问。

Golang伪代码:

import (

"database/sql"

_ "github.com/alexbrainman/odbc"

)

db, err := sql.Open("odbc", "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=全路径.MDB;pwd=xx;")

if err != nil {

panic(err)

}

defer db.Close()

5 Oracle 数据源配置

5.1 配置步骤

第一步:下载 instantclient-basic 和 instantclient-odbc。下载地址已经传到百度云了。

第二步:将两个zip包都解压到当前目录下。并创建network/admin 目录(不知道有没有用),看其他文章还需要修改tnsnames.ora。但是我并没有这个文件也可以成功。

第三步:配置环境变量,右键以管理员运行odbc_install.exe程序。

path

xxx\instantclient_11_2

ORACLE_HOME

xxx\instantclient_11_

TNS_ADMIN

xxx\instantclient_11_1\network\admin

第四步:打开计算机管理---数据源---找到Oracle in instantclient_11_2

7c41542d345a0e01a02885da37e2a555.png

第五步:配置数据源。其他默认,只需要配置 TNS Service Name : IP+PORT/SID, sid一般是数据库名称。最后测试链接。

4c46d5653eac21c44f2620007f9b5776.png

5.2 链接参数配置

import (

"database/sql"

_ "github.com/alexbrainman/odbc"

)

db, err := sql.Open("odbc", "DSN=ITDragon;uid=xxx;pwd=xxx;database=xxx")

if err != nil {

panic(err)

}

defer db.Close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值