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

創(chuàng)新互聯(lián)成立10多年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供做網(wǎng)站、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計、國際域名空間、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補等服務(wù)。網(wǎng)站是否美觀、功能強大、用戶體驗好、性價比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。
1. 安裝MySQL ODBC驅(qū)動
為了在Linux系統(tǒng)中使用MySQL的ODBC驅(qū)動,用戶需要先安裝該驅(qū)動程序。目前,MySQL官方提供兩個版本的ODBC驅(qū)動,分別是64位和32位版本。根據(jù)Linux系統(tǒng)的版本特點,用戶需要選擇對應(yīng)的驅(qū)動版本。
以安裝MySQL ODBC 8.0驅(qū)動為例,用戶可以執(zhí)行以下命令進行安裝:
$ sudo apt install mysql-connector-odbc
該命令會自動從軟件倉庫中下載安裝MySQL的ODBC驅(qū)動。安裝完成后,用戶需要配置ODBC數(shù)據(jù)源,才能訪問MySQL數(shù)據(jù)庫。
2. 配置ODBC數(shù)據(jù)源
為了能夠正確配置ODBC驅(qū)動的連接信息,用戶需要在系統(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ù)自己的需要進行修改。其中,Driver項指定了ODBC驅(qū)動程序的名稱和路徑,用戶根據(jù)選擇的ODBC驅(qū)動版本進行修改;Setup項指定了ODBC驅(qū)動配置文件的名稱和路徑,同樣需要根據(jù)驅(qū)動版本進行修改;FileUsage項的值為1,表示MySQL ODBC驅(qū)動程序在使用時會按照文件夾名附加任何表名。
3. 測試ODBC連接
配置ODBC數(shù)據(jù)源后,用戶可以使用isql或者其他ODBC客戶端測試連接是否成功。isql是一個由UnixODBC提供的套接字級ODBC測試工具。
用戶可以通過以下命令使用isql測試連接:
$ isql myodbc username password
上述命令中,myodbc為ODBC數(shù)據(jù)源的名稱,username為MySQL服務(wù)器上的用戶名,password為MySQL服務(wù)器上的密碼。如果連接成功,isql會打開ODBC連接。用戶輸入SQL語句后,isql會執(zhí)行該SQL語句并打印結(jié)果。如果連接失敗,用戶需要檢查ODBC數(shù)據(jù)源的配置是否正確。
4. 使用ODBC API訪問MySQL數(shù)據(jù)庫
對于需要通過其它應(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ū)動程序轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)庫操作接口。通過使用ODBC API,用戶可以在C/C++、Java和Python等編程語言中編寫程序,訪問MySQL數(shù)據(jù)庫。
ODBC API可參考JDBC和ODBC驅(qū)動程序的API。JDBC是Java語言中訪問關(guān)系型數(shù)據(jù)庫的標準API,該API為開發(fā)Java程序的開發(fā)者提供了訪問MySQL數(shù)據(jù)庫的方式。而安裝ODBC驅(qū)動程序后,在Linux平臺上可以使用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ù)自己的需求進行修改適配為自己的程序。如果需要使用Python訪問MySQL數(shù)據(jù)庫,用戶可以安裝pyodbc模塊,該模塊提供了Python語言的ODBC驅(qū)動支持,可以方便地訪問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
這個Yum庫包含了MySQLServer,困滲MySQL工作臺管理工具以及ODBC驅(qū)動,現(xiàn)在可以汪頃脊通過下面的命令簡單地安裝MySQLServer:
sudo yum install mysql-community-server
至此我就可以使用Yum簡單地管理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.
解決辦法:進入你的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ù)個人環(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上有很多,我遇到這個情況的時候只是使用/usr/bin/mysql_secure_installation 重新設(shè)置一次。
從MySQL官方Y(jié)um倉庫安裝MySQL5.6步驟:
1、首先需要從MySQL開發(fā)者網(wǎng)站下載Yum倉庫文件,導(dǎo)入Yum庫后,一個簡單的yumupdate命令將確保侍運你運行在MySQL5.6的最新發(fā)布版上,包括一些襪塵安全特性的更新。Yum同時也將確保導(dǎo)入相關(guān)依賴庫,這些都將使我們的安裝過程簡單化。進入
,下載RedHat Enterprise Linux 6 / Oracle Linux 6版。
2、下載完成后將Yum庫導(dǎo)入到你的本地:
sudo yum localinstallmysql-community-release-el6-*.noarch.rpm
3、這個Yum庫包含了MySQLServer,MySQL工作臺管理工具以及ODBC驅(qū)動,現(xiàn)在可以通過下面的命令簡單地安裝MySQLServer:
sudo yum install mysql-community-server
至此可以使用Yum簡單地管理MySQL更新,并能確保總是從官網(wǎng)軟件庫得到老好梁最新的發(fā)布版。
linux mysql odbc驅(qū)動的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux mysql odbc驅(qū)動,Linux下如何配置MySQL的ODBC驅(qū)動,如何從MySQL官方Y(jié)um倉庫安裝MySQL5.6的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標準機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。
文章題目:Linux下如何配置MySQL的ODBC驅(qū)動(linuxmysqlodbc驅(qū)動)
URL鏈接:http://m.5511xx.com/article/ccohhcd.html


咨詢
建站咨詢
