新聞中心
在Linux系統(tǒng)中,用戶常常需要使用ODBC(開放式數(shù)據(jù)庫互連)驅(qū)動(dòng),這是一種C庫,用于處理數(shù)據(jù)庫的通訊。 MySQL也提供ODBC驅(qū)動(dòng),使用戶可以使用其ODBC接口,在Linux系統(tǒng)下與MySQL服務(wù)器產(chǎn)生通信。本文將介紹如何在Linux系統(tǒng)中使用MySQL的ODBC驅(qū)動(dòng)。

創(chuàng)新互聯(lián)成立10多年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供做網(wǎng)站、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、國(guó)際域名空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
1. 安裝MySQL ODBC驅(qū)動(dòng)
為了在Linux系統(tǒng)中使用MySQL的ODBC驅(qū)動(dòng),用戶需要先安裝該驅(qū)動(dòng)程序。目前,MySQL官方提供兩個(gè)版本的ODBC驅(qū)動(dòng),分別是64位和32位版本。根據(jù)Linux系統(tǒng)的版本特點(diǎn),用戶需要選擇對(duì)應(yīng)的驅(qū)動(dòng)版本。
以安裝MySQL ODBC 8.0驅(qū)動(dòng)為例,用戶可以執(zhí)行以下命令進(jìn)行安裝:
$ sudo apt install mysql-connector-odbc
該命令會(huì)自動(dòng)從軟件倉庫中下載安裝MySQL的ODBC驅(qū)動(dòng)。安裝完成后,用戶需要配置ODBC數(shù)據(jù)源,才能訪問MySQL數(shù)據(jù)庫。
2. 配置ODBC數(shù)據(jù)源
為了能夠正確配置ODBC驅(qū)動(dòng)的連接信息,用戶需要在系統(tǒng)中創(chuàng)建DSN(ODBC數(shù)據(jù)源名稱)。這需要修改ODBC配置文件odbc.ini,配置文件一般位于/etc/odbc.ini目錄中。修改該文件需要使用root賬戶權(quán)限。
在odbc.ini文件中,用戶需要增加如下內(nèi)容:
[myodbc]
Description = MySQL ODBC Driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
上述配置中,DSN名稱為myodbc,用戶可以根據(jù)自己的需要進(jìn)行修改。其中,Driver項(xiàng)指定了ODBC驅(qū)動(dòng)程序的名稱和路徑,用戶根據(jù)選擇的ODBC驅(qū)動(dòng)版本進(jìn)行修改;Setup項(xiàng)指定了ODBC驅(qū)動(dòng)配置文件的名稱和路徑,同樣需要根據(jù)驅(qū)動(dòng)版本進(jìn)行修改;FileUsage項(xiàng)的值為1,表示MySQL ODBC驅(qū)動(dòng)程序在使用時(shí)會(huì)按照文件夾名附加任何表名。
3. 測(cè)試ODBC連接
配置ODBC數(shù)據(jù)源后,用戶可以使用isql或者其他ODBC客戶端測(cè)試連接是否成功。isql是一個(gè)由UnixODBC提供的套接字級(jí)ODBC測(cè)試工具。
用戶可以通過以下命令使用isql測(cè)試連接:
$ isql myodbc username password
上述命令中,myodbc為ODBC數(shù)據(jù)源的名稱,username為MySQL服務(wù)器上的用戶名,password為MySQL服務(wù)器上的密碼。如果連接成功,isql會(huì)打開ODBC連接。用戶輸入SQL語句后,isql會(huì)執(zhí)行該SQL語句并打印結(jié)果。如果連接失敗,用戶需要檢查ODBC數(shù)據(jù)源的配置是否正確。
4. 使用ODBC API訪問MySQL數(shù)據(jù)庫
對(duì)于需要通過其它應(yīng)用程序訪問MySQL數(shù)據(jù)庫的用戶,可以使用ODBC API來訪問數(shù)據(jù)庫。ODBC API提供了一組函數(shù)和數(shù)據(jù)結(jié)構(gòu),這些函數(shù)和數(shù)據(jù)結(jié)構(gòu)將ODBC驅(qū)動(dòng)程序轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)庫操作接口。通過使用ODBC API,用戶可以在C/C++、Java和Python等編程語言中編寫程序,訪問MySQL數(shù)據(jù)庫。
ODBC API可參考JDBC和ODBC驅(qū)動(dòng)程序的API。JDBC是Java語言中訪問關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)API,該API為開發(fā)Java程序的開發(fā)者提供了訪問MySQL數(shù)據(jù)庫的方式。而安裝ODBC驅(qū)動(dòng)程序后,在Linux平臺(tái)上可以使用UnixODBC API訪問數(shù)據(jù)庫。
如需使用ODBC API,用戶需要執(zhí)行以下步驟:
(1)在程序中引入ODBC API,如以下代碼示例:
#include
#include
(2)獲取ODBC連接句柄:
SQLHENV hEnv;
SQLHDBC hDbc;
SQLRETURN ret;
SQLCHAR outstr[1024];
SQLALLINT outstrlen;
// Allocate Environment Handle //
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
// Allocate Connection Handle //
SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
(3)設(shè)置連接屬性和連接字符串:
SQLSetConnectAttr(hDbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
// Set Connect String //
SQLCHAR* szConnStr = (SQLCHAR*)(“DRIVER={MySQL ODBC 8.0 Unicode Driver};”
“SERVER=localhost;”
“DATABASE=test;”
“UID=root;”
“PWD=test;”);
ret = SQLDriverConnect(hDbc, NULL, szConnStr, SQL_NTS, outstr,
(4)執(zhí)行SQL語句:
SQLCHAR sql[] = “SELECT * from customers”;
SQLHANDLE hStmt;
SQLINTEGER nrows = 0;
SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt);
SQLExecDirect(hStmt, sql, SQL_NTS);
SQLNumResultCols(hStmt, &nfields);
(5)解析查詢結(jié)果:
SQLBindCol(hStmt, 1, SQL_C_SLONG, &id, sizeof(id), &cbid);
SQLBindCol(hStmt, 2, SQL_C_CHAR, &name, 50, &cbsalary);
SQLFetch(hStmt);
以上示例提供了如何通過ODBC API訪問MySQL數(shù)據(jù)庫的相關(guān)代碼,用戶需要根據(jù)自己的需求進(jìn)行修改適配為自己的程序。如果需要使用Python訪問MySQL數(shù)據(jù)庫,用戶可以安裝pyodbc模塊,該模塊提供了Python語言的ODBC驅(qū)動(dòng)支持,可以方便地訪問MySQL數(shù)據(jù)庫。
相關(guān)問題拓展閱讀:
- 如何從MySQL官方Y(jié)um倉庫安裝MySQL5.6
如何從MySQL官方Y(jié)um倉庫安裝MySQL5.6
下載完成后將Yum庫導(dǎo)入到你的本地:
sudo yum localinstallmysql-community-release-el6-*.noarch.rpm
這個(gè)Yum庫包含了MySQLServer,困滲MySQL工作臺(tái)管理工具以及ODBC驅(qū)動(dòng),現(xiàn)在可以汪頃脊通過下面的命令簡(jiǎn)單地安裝MySQLServer:
sudo yum install mysql-community-server
至此我就可以使用Yum簡(jiǎn)單地管理MySQL更新,并能確??偸菑墓倬W(wǎng)軟件庫得到最新的發(fā)布版。
附錄:
1、root password update failed
ERROR 1290 (HY000): The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement.
解決辦法:
# mysql
mysql> set global read_only=0;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
# /usr/bin/mysql_secure_installation
如此便可以重新更新root密乎罩碼了!
2、 InnoDB: Cannot create log files because data files are corrupt or the database was not shut down cleanly after creating the data files.
解決辦法:進(jìn)入你的mysql數(shù)據(jù)存放目錄,刪除ibdata1文件即可,例如在我的環(huán)境下
#cd /var/lib/mysql
#mv ibdata1 ibdata1.bak
3、 InnoDB: space header page consists of zero bytes in data file ./ibdata1
解決辦法:修改配置文件my.cnf
根據(jù)個(gè)人環(huán)境空間大小和需求調(diào)節(jié)如下參數(shù)的值
innodb_buffer_pool_size = 256M
innodb_log_file_size = 256M
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
添加一條:
innodb_flush_method=normal
4、ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
解決辦法:Google上有很多,我遇到這個(gè)情況的時(shí)候只是使用/usr/bin/mysql_secure_installation 重新設(shè)置一次。
從MySQL官方Y(jié)um倉庫安裝MySQL5.6步驟:
1、首先需要從MySQL開發(fā)者網(wǎng)站下載Yum倉庫文件,導(dǎo)入Yum庫后,一個(gè)簡(jiǎn)單的yumupdate命令將確保侍運(yùn)你運(yùn)行在MySQL5.6的最新發(fā)布版上,包括一些襪塵安全特性的更新。Yum同時(shí)也將確保導(dǎo)入相關(guān)依賴庫,這些都將使我們的安裝過程簡(jiǎn)單化。進(jìn)入
,下載RedHat Enterprise Linux 6 / Oracle Linux 6版。
2、下載完成后將Yum庫導(dǎo)入到你的本地:
sudo yum localinstallmysql-community-release-el6-*.noarch.rpm
3、這個(gè)Yum庫包含了MySQLServer,MySQL工作臺(tái)管理工具以及ODBC驅(qū)動(dòng),現(xiàn)在可以通過下面的命令簡(jiǎn)單地安裝MySQLServer:
sudo yum install mysql-community-server
至此可以使用Yum簡(jiǎn)單地管理MySQL更新,并能確??偸菑墓倬W(wǎng)軟件庫得到老好梁最新的發(fā)布版。
linux mysql odbc驅(qū)動(dòng)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux mysql odbc驅(qū)動(dòng),Linux下如何配置MySQL的ODBC驅(qū)動(dòng),如何從MySQL官方Y(jié)um倉庫安裝MySQL5.6的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
本文名稱:Linux下如何配置MySQL的ODBC驅(qū)動(dòng)(linuxmysqlodbc驅(qū)動(dòng))
網(wǎng)站路徑:http://www.5511xx.com/article/ccohhcd.html


咨詢
建站咨詢
