日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

odbc mysql 配置文件_ODBC连接主流数据库的配置方法

發布時間:2023/12/4 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 odbc mysql 配置文件_ODBC连接主流数据库的配置方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備工作

安裝ODBC基本組件:

# yum install -y unixODBC unixODBC-devel

安裝完成后可用odbcinst -j命令查看安裝配置文件所在的位置,有兩個比較常用的配置,一個是ODBC驅動配置,默認在/etc/odbcinst.ini,另一個是系統數據源配置,默認在/etc/odbc.ini。

連接MySQL

1. 安裝MySQL連接驅動

# yum install -y mysql-connector-odbc

安裝好驅動后,驅動信息會自動追加到驅動配置odbcinst.ini中,像這樣:

[MySQL]

Description=ODBC for MySQL

Driver=/usr/lib/libmyodbc5.so

Setup=/usr/lib/libodbcmyS.so

Driver64=/usr/lib64/libmyodbc5w.so

Setup64=/usr/lib64/libodbcmyS.so

FileUsage=1

2. 配置MySQL數據源(DSN)

數據源可定義在系統DSN中,也可以定義在用戶DSN中,視需要而定。以下是一個配置例子。

[mysql223]

driver = MySQL

server = 192.1.1.223

port = 3306

user = root

password = 11111111

其中:driver是MySQL驅動庫的名稱,要與odbcinst.ini中配的名字一致,另外也可以直接寫.so文件的位置,但不推薦這么做。

如果配置不指定user和password,那么在連接時必須給定,命令行和API都有相應的選項或參數。

3. 連接測試

isql命令格式:isql DSN [user [password]] [options]

如果配置指定了用戶名和密碼,連接時指定DSN即可:isql mysql223。

在連接時指定用戶名和密碼:isql mysql223 root 62960909。

連接SQLServer

1. 安裝SQLServer連接驅動

# yum install -y freetds freetds-devel

安裝好后可用tsql -C查看編譯時的選項信息。

如果驅動安裝完后沒有將驅動信息更新到odbcinst.ini中,則需要手工配置。

[SQLServer]

Description = ODBC for SQLServer

Driver = /usr/lib/libtdsodbc.so

Setup = /usr/lib/libtdsS.so

FileUsage = 1

其中.so文件的路徑要與實際安裝位置相符。

2. 配置數據源

數據源配置文件為freetds.conf,一般在/etc目錄下。以下是個示例:

[sqlsever224]

host = 192.1.1.224

port = 1433

tds version = 7.0

3. 連接測試

# tsql -S sqlserver224 -U test -P test123

連接Oracle

1. 安裝驅動

不同版本的Oracle對應驅動版本也不太一樣,可到官網下載與數據庫版本對應的驅動,至少要安裝basic,develop,odbc包,建議安裝sqlplus包,便于排障。

# rpm -ivh *.rpm

2. 配置環境變量

export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

注意路徑要與實際相符。

3. 測試連通性

# sqlplus test/test123@192.1.1.225:1521/orcl

如果連不通,檢查客戶端與Oracle服務器網絡是否連通,另外檢查服務器上tnsnames.ora文件中使用的主機名還是IP地址,建議用IP,確保客戶端能正常訪問。連接成功后再往下配置ODBC。

4. 配置ODBC

在odbcinst.ini中添加Oracle驅動。

[Oracle]

Description = ODBC for Oracle

Driver = /usr/lib/oracle/10.2.0.4/client/lib/libsqora.so.10.1

Setup =

在odbc.ini中配置數據源。

[oracle225]

driver = Oracle

server = 192.1.1.225

port = 1521

servername = orcl255

其中servername是tnsnames.ora中配置的SID,而tnsnames.ora的位置由TNS_NAMES環境變量指定。

# export TNS_NAMES=/etc

# cat /etc/tnsnames.ora

orcl255 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP) (HOST = 192.1.1.225) (PORT = 1521))

(CONNECT_DATA = (SERVICE_NAME = ORCL))

)

配置好后可用isql命令測試連接。

# isql oracle225 system keyouhac

連接達夢數據庫

達夢數據庫是款國產數據庫,應用還有待推廣。

在Linux環境下通過-i選項進行交互式安裝,這里選擇自定義安裝方式,安裝組件選擇客戶端和ODBC相關驅動,安裝完成后即可用客戶端工具連接數據庫測試。

$ sudo ./DMInstall.bin -i

$ /opt/dmdbms/tool/disql

SQL> conn SYSDBA/SYSDBA@192.1.1.190

SQL> select * from dmhr.job;

也可以通過unixODBC提供的isql工具連接,但需要配置驅動和數據源。

$ cat /etc/odbcinst.ini

[DM7]

Description = ODBC DRIVER FOR DM7

Driver = /opt/dmdbms/bin/libodbc.so

$ cat /etc/odbc.ini

[dm190]

Description = dmdb

Driver = DM7

SERVER = 192.1.1.190

UID = SYSDBA

PWD = SYSDBA

TCP_PORT = 5236

$ isql dm190

$ isql dm190 SYSDBA SYSDBA

ODBC編程

以下是通過ODBC連接mysql數據庫并執行sql語句的示例,其他類型數據庫類似。

#include

#include

#include

#include

HENV henv;

HDBC hdbc;

HSTMT hsmt;

SQLRETURN rc;

int Success(SQLRETURN ret) {

return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO;

}

int Failed(SQLRETURN ret) {

return !Success(ret);

}

void ODBCError(SQLSMALLINT handleType, SQLHANDLE handle) {

BYTE buf[256], sqlstate[256];

SQLGetDiagRec(handleType, handle, 1, sqlstate, NULL, buf, sizeof(buf), NULL);

printf("[%s]%s", sqlstate, buf);

}

int main() {

if (Failed(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv))) {

ODBCError(SQL_HANDLE_ENV, henv);

return -1;

}

SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);

if (Failed(SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc))) {

ODBCError(SQL_HANDLE_DBC, hdbc);

return -1;

}

if (Failed(SQLConnect(hdbc, (SQLCHAR*)"mysql", SQL_NTS, (SQLCHAR*)"root", SQL_NTS,

(SQLCHAR*)"123456", SQL_NTS))) {

ODBCError(SQL_HANDLE_DBC, hdbc);

return -1;

}

{

char user[128], host[128], pass[128];

long cbuser = 0, cbhost = 0, cbpass = 0;

if (Failed(SQLAllocStmt(hdbc, &hsmt))) {

ODBCError(SQL_HANDLE_STMT, hsmt);

return -1;

}

SQLExecDirect(hsmt, (SQLCHAR*)"select user, host, password from mysql.user", SQL_NTS);

SQLBindCol(hsmt, 1, SQL_C_CHAR, user, sizeof(user), &cbuser);

SQLBindCol(hsmt, 2, SQL_C_CHAR, host, sizeof(host), &cbhost);

SQLBindCol(hsmt, 3, SQL_C_CHAR, pass, sizeof(pass), &cbpass);

while (Success(SQLFetchScroll(hsmt, SQL_FETCH_NEXT, 0)))

printf("user=[%s], host=[%s], pass=[%s]\n", user, host, pass);

}

SQLFreeHandle(SQL_HANDLE_STMT, hsmt);

SQLDisconnect(hdbc);

SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

SQLFreeHandle(SQL_HANDLE_ENV, henv);

return 0;

}

「?? 感謝大家」點贊支持下吧,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)

歡迎在留言區與我分享你的想法,也歡迎你在留言區記錄你的思考過程

總結

以上是生活随笔為你收集整理的odbc mysql 配置文件_ODBC连接主流数据库的配置方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。