本文目錄一覽:
- 1、如何實現mysql 和sql server數據庫通訊
- 2、五大常見的MySQL高可用方案(最全)
- 3、怎麼連接同一局域網mysql數據庫
- 4、mysql 怎麼設置允許遠程連接數據庫
- 5、請教高手:關於VFP與MYSQL數據庫連接問題
- 6、北大青鳥設計培訓:C++連接mysql數據庫的兩種方法?
如何實現mysql 和sql server數據庫通訊
直接寫程序 連接兩個數據庫,進行數據操作就好了。
如果只是數據的導入導出的話,可以生成標準的sql語句來實現。
五大常見的MySQL高可用方案(最全)
1. 概述
我們在考慮MySQL數據庫的高可用的架構時,主要要考慮如下幾方面:
如果數據庫發生了宕機或者意外中斷等故障,能儘快恢複數據庫的可用性,儘可能的減少停機時間,保證業務不會因為數據庫的故障而中斷。
用作備份、只讀副本等功能的非主節點的數據應該和主節點的數據實時或者最終保持一致。
當業務發生數據庫切換時,切換前後的數據庫內容應當一致,不會因為數據缺失或者數據不一致而影響業務。
關於對高可用的分級在這裡我們不做詳細的討論,這裡只討論常用高可用方案的優缺點以及高可用方案的選型。
2. 高可用方案
2.1. 主從或主主半同步複製
使用雙節點數據庫,搭建單向或者雙向的半同步複製。在5.7以後的版本中,由於lossless replication、logical多線程複製等一些列新特性的引入,使得MySQL原生半同步複製更加可靠。
常見架構如下:
通常會和proxy、keepalived等第三方軟件同時使用,即可以用來監控數據庫的 健康 ,又可以執行一系列管理命令。如果主庫發生故障,切換到備庫後仍然可以繼續使用數據庫。
優點:
架構比較簡單,使用原生半同步複製作為數據同步的依據;
雙節點,沒有主機宕機後的選主問題,直接切換即可;
雙節點,需求資源少,部署簡單;
缺點:
完全依賴於半同步複製,如果半同步複製退化為異步複製,數據一致性無法得到保證;
需要額外考慮haproxy、keepalived的高可用機制。
2.2. 半同步複製優化
半同步複製機制是可靠的。如果半同步複製一直是生效的,那麼便可以認為數據是一致的。但是由於網絡波動等一些客觀原因,導致半同步複製發生超時而切換為異步複製,那麼這時便不能保證數據的一致性。所以儘可能的保證半同步複製,便可提高數據的一致性。
該方案同樣使用雙節點架構,但是在原有半同複製的基礎上做了功能上的優化,使半同步複製的機制變得更加可靠。
可參考的優化方案如下:
2.2.1. 雙通道複製
半同步複製由於發生超時後,複製斷開,當再次建立起複制時,同時建立兩條通道,其中一條半同步複製通道從當前位置開始複製,保證從機知道當前主機執行的進度。另外一條異步複製通道開始追補從機落後的數據。當異步複製通道追趕到半同步複製的起始位置時,恢復半同步複製。
2.2.2. binlog文件服務器
搭建兩條半同步複製通道,其中連接文件服務器的半同步通道正常情況下不啟用,當主從的半同步複製發生網絡問題退化後,啟動與文件服務器的半同步複製通道。當主從半同步複製恢復後,關閉與文件服務器的半同步複製通道。
優點:
雙節點,需求資源少,部署簡單;
架構簡單,沒有選主的問題,直接切換即可;
相比於原生複製,優化後的半同步複製更能保證數據的一致性。
缺點:
需要修改內核源碼或者使用mysql通信協議。需要對源碼有一定的了解,並能做一定程度的二次開發。
依舊依賴於半同步複製,沒有從根本上解決數據一致性問題。
2.3. 高可用架構優化
將雙節點數據庫擴展到多節點數據庫,或者多節點數據庫集群。可以根據自己的需要選擇一主兩從、一主多從或者多主多從的集群。
由於半同步複製,存在接收到一個從機的成功應答即認為半同步複製成功的特性,所以多從半同步複製的可靠性要優於單從半同步複製的可靠性。並且多節點同時宕機的幾率也要小於單節點宕機的幾率,所以多節點架構在一定程度上可以認為高可用性是好於雙節點架構。
但是由於數據庫數量較多,所以需要數據庫管理軟件來保證數據庫的可維護性。可以選擇MMM、MHA或者各個版本的proxy等等。常見方案如下:
2.3.1. MHA+多節點集群
MHA Manager會定時探測集群中的master節點,當master出現故障時,它可以自動將最新數據的slave提升為新的master,然後將所有其他的slave重新指向新的master,整個故障轉移過程對應用程序完全透明。
MHA Node運行在每台MySQL服務器上,主要作用是切換時處理二進制日誌,確保切換盡量少丟數據。
MHA也可以擴展到如下的多節點集群:
優點:
可以進行故障的自動檢測和轉移;
可擴展性較好,可以根據需要擴展MySQL的節點數量和結構;
相比於雙節點的MySQL複製,三節點/多節點的MySQL發生不可用的概率更低
缺點:
至少需要三節點,相對於雙節點需要更多的資源;
邏輯較為複雜,發生故障後排查問題,定位問題更加困難;
數據一致性仍然靠原生半同步複製保證,仍然存在數據不一致的風險;
可能因為網絡分區發生腦裂現象;
2.3.2. zookeeper+proxy
Zookeeper使用分布式算法保證集群數據的一致性,使用zookeeper可以有效的保證proxy的高可用性,可以較好的避免網絡分區現象的產生。
優點:
較好的保證了整個系統的高可用性,包括proxy、MySQL;
擴展性較好,可以擴展為大規模集群;
缺點:
數據一致性仍然依賴於原生的mysql半同步複製;
引入zk,整個系統的邏輯變得更加複雜;
2.4. 共享存儲
共享存儲實現了數據庫服務器和存儲設備的解耦,不同數據庫之間的數據同步不再依賴於MySQL的原生複製功能,而是通過磁盤數據同步的手段,來保證數據的一致性。
2.4.1. SAN共享儲存
SAN的概念是允許存儲設備和處理器(服務器)之間建立直接的高速網絡(與LAN相比)連接,通過這種連接實現數據的集中式存儲。常用架構如下:
使用共享存儲時,MySQL服務器能夠正常掛載文件系統並操作,如果主庫發生宕機,備庫可以掛載相同的文件系統,保證主庫和備庫使用相同的數據。
優點:
兩節點即可,部署簡單,切換邏輯簡單;
很好的保證數據的強一致性;
不會因為MySQL的邏輯錯誤發生數據不一致的情況;
缺點:
需要考慮共享存儲的高可用;
價格昂貴;
2.4.2. DRBD磁盤複製
DRBD是一種基於軟件、基於網絡的塊複製存儲解決方案,主要用於對服務器之間的磁盤、分區、邏輯卷等進行數據鏡像,當用戶將數據寫入本地磁盤時,還會將數據發送到網絡中另一台主機的磁盤上,這樣的本地主機(主節點)與遠程主機(備節點)的數據就可以保證實時同步。常用架構如下:
當本地主機出現問題,遠程主機上還保留着一份相同的數據,可以繼續使用,保證了數據的安全。
DRBD是linux內核模塊實現的快級別的同步複製技術,可以與SAN達到相同的共享存儲效果。
優點:
兩節點即可,部署簡單,切換邏輯簡單;
相比於SAN儲存網絡,價格低廉;
保證數據的強一致性;
缺點:
對io性能影響較大;
從庫不提供讀操作;
2.5. 分布式協議
分布式協議可以很好解決數據一致性問題。比較常見的方案如下:
2.5.1. MySQL cluster
MySQL cluster是官方集群的部署方案,通過使用NDB存儲引擎實時備份冗餘數據,實現數據庫的高可用性和數據一致性。
優點:
全部使用官方組件,不依賴於第三方軟件;
可以實現數據的強一致性;
缺點:
國內使用的較少;
配置較複雜,需要使用NDB儲存引擎,與MySQL常規引擎存在一定差異;
至少三節點;
2.5.2. Galera
基於Galera的MySQL高可用集群, 是多主數據同步的MySQL集群解決方案,使用簡單,沒有單點故障,可用性高。常見架構如下:
優點:
多主寫入,無延遲複製,能保證數據強一致性;
有成熟的社區,有互聯網公司在大規模的使用;
自動故障轉移,自動添加、剔除節點;
缺點:
需要為原生MySQL節點打wsrep補丁
只支持innodb儲存引擎
至少三節點;
2.5.3. POAXS
Paxos 算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。這個算法被認為是同類算法中最有效的。Paxos與MySQL相結合可以實現在分布式的MySQL數據的強一致性。常見架構如下:
優點:
多主寫入,無延遲複製,能保證數據強一致性;
有成熟理論基礎;
自動故障轉移,自動添加、剔除節點;
缺點:
只支持innodb儲存引擎
至少三節點;
3. 總結
隨着人們對數據一致性的要求不斷的提高,越來越多的方法被嘗試用來解決分布式數據一致性的問題,如MySQL自身的優化、MySQL集群架構的優化、Paxos、Raft、2PC算法的引入等等。
而使用分布式算法用來解決MySQL數據庫數據一致性的問題的方法,也越來越被人們所接受,一系列成熟的產品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越來越多的被大規模使用。
隨着官方MySQL Group Replication的GA,使用分布式協議來解決數據一致性問題已經成為了主流的方向。期望越來越多優秀的解決方案被提出,MySQL高可用問題可以被更好的解決。
怎麼連接同一局域網mysql數據庫
怎麼連接同一局域網mysql數據庫
兩個不同的網絡中間必經過路由器,否則沒法通信。按照這個原則,你要將 192.168.1.abc 這台帶 MYSQL 的電腦在路由器中做一個端口映射,然後你在其他網絡中遠程連接這個映射後的IP:3306,就能訪問到 192.168.1.abc上的 MYSQL 了。
或者在路由器中將這台MYSQL電腦做一個DMZ
mysql 怎麼設置允許遠程連接數據庫
首先我們在linux系統上安裝mysql,本文默認linux系統可以聯網或者已經掛載光盤iso了,我們使用命令 apt-get install mysql-server 命令進行安裝,安裝完成後,查看mysql是否啟動,執行命令 ps -e |grep mysql。
請點擊輸入圖片描述
驗證初始是否允許遠程連接,由於本次虛擬機IP為192.168.2.120,因此我們執行mysql -h 192.168.20.120 -P 3306 -u root -proot(備註:-proot,root指root賬號的密碼),可以得到結果連接不上。
假如我們不採用遠程連接,可以連接上,命令為:mysql -u root -proot。
請點擊輸入圖片描述
請點擊輸入圖片描述
接下來,我們連接上數據庫,執行命令use mysql;使用mysql數據庫。
並查看用戶表信息,執行命令為:select Host,User from user。
執行結果如下圖所示。
請點擊輸入圖片描述
通過上面步驟可以得到數據表 user內的值,下面我們對錶進行更新記錄允許遠程訪問,
執行命令為:update user set Host=’%’ where User =’root’ limit 1;
(該條命令意思為更新user表內User值為root的第一條記錄的Host值設置為%)更新完成後,執行上一步查詢命令進行驗證
請點擊輸入圖片描述
執行強制刷新命令flush privileges;
執行完畢後,關閉數據庫連接。
請點擊輸入圖片描述
更改mysql安裝目錄下的my.cnf文件。
一般默認路徑在/etc/mysql/下,找到bind-address = 127.0.0.1 這一行,可以對其進行刪除,注釋或者將127.0.0.1更改為0.0.0.0,修改完畢後保存。
請點擊輸入圖片描述
重啟mysql,命令為service mysql restart。進行遠程登陸測試,可以看到已經允許遠程連接了。
請點擊輸入圖片描述
請教高手:關於VFP與MYSQL數據庫連接問題
先自己扔塊磚頭出來。
歸納如下:
故障現象 : 無法連接 mysql
錯誤信息1 :ERROR 1045 (28000): Access denied for user ‘usera’@’localhost’ (using password:YES)
錯誤信息2 :ERROR 1045 (28000): Access denied for user ‘usera’@’localhost’ (using password:NO)
下面,首先分析說明這兩種錯誤信息分別在什麼情況下會出現:
描述:使用mysql連接命令或連接工具,對遠程數據庫進行連接時,可能會出現以上兩種錯誤信息,下面以命令的連接方式進行說明。
當使用mysql里連接命令時,若帶-p參數且指明密碼,或帶-p參數不指明密碼,但在下一步輸入密碼時有字符串輸入,則返回的是
“錯誤信息1”,若不帶-p參數,或帶-p參數但在下一步輸入密碼時,不輸入任何字符,則返回的是“錯誤信息2”,如下所示:
C:\Documents and Settings\Administratormysql -uroot -h 192.168.8.88 -proot //帶-p參數,並指明密碼
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
C:\Documents and Settings\Administratormysql -uroot -h 192.168.8.88 -p //帶-p參數,在下一步進行密碼輸入
Enter password: //有字符串輸入
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
C:\Documents and Settings\Administratormysql -uroot -h 192.168.8.88 //不帶-p參數
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: NO)
C:\Documents and Settings\Administratormysql -uroot -h 192.168.8.88 -p //帶-p參數,在下一步進行密碼輸入
Enter password: //無字符串輸入
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: NO)
上面的對比可總結出一點,使用mysql命令進行登錄時,若有密碼輸入行為並輸入了字符,則驗證出錯後,則返回的錯誤提示中,對於 (using password: ?)中?的關鍵字,則返回的是YES,若沒有密碼輸入行為,或無密碼字符輸入,則返回的是NO。
除上面的實驗對比,還進行了如下的登錄對比操作,並記錄了他們所返回錯誤提示類型,對上面的總結進行驗證:
1.使用存在的用戶,不輸入密碼
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: NO)
2.使用不存在的用戶,不輸入密碼
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: NO)
3.使用存在的用戶,且輸入密碼正確
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
4.使用存在的用戶,但輸入密碼不正確
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
5.使用不存在的用戶,但輸入數據庫中存在的某一個密碼
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
6.使用不存在的用戶,且輸入數據庫中不存在的一個密碼
ERROR 1045 (28000): Access denied for user ‘root’@’192.168.8.123’ (using password: YES)
總結:對於 ERROR 1045 (28000): Access denied for user’root’@’192.168.8.123′ 此類錯誤返回時, (using password: ?)中?的
關鍵字是YES還是NO,關鍵不在於用戶是否存在,密碼是否正確,它的結果取決於登錄時,用戶對於密碼有沒有字符串的輸入,如果沒有,MySQL數據庫驗證後,若出錯返回此類信息,則應是 (using password: NO),若用戶對密碼有字符串的輸入,返回的則是
(using password: YES)。
下面分析這類 ERROR 1045 (28000): Access denied for user’usera’@’localhost’ 錯誤出現的原因:
原因1 : 客戶端遠程訪問的用戶賬號並未創建
檢查 :
以管理員ROOT登錄後,show grants for ‘user’@’IP‘; 或者 select user from mysql.user; 確認用戶賬號是否存在。
mysql show grants for ‘jtsec’@’192.168.8.123’;
ERROR 1141 (42000): There is no such grant defined for user ‘jtsec’ on host ‘192.168.8.123’
mysql
返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘jtsec’ on host ‘192.168.8.123’
說明,沒有jtsec用戶,或者沒有對jtsec用戶進行在192.168.8.123遠程訪問的授權。
mysql select user,host from mysql.user;
+——-+—————+
| user | host |
+——-+—————+
| root | localhost |
+——-+—————+
1 rows in set (0.00 sec)
mysql
關於user記錄數只有一條,是root,並沒有jtsec相關的記錄,說明沒有數據庫中沒有jtsec這個帳號。
處理 :創建用戶賬號。
mysql grant all privileges on *.* to ‘jtsec’@’192.168.8.123’ identified by ‘jtsec’ with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql show grants for ‘jtsec’@’192.168.8.123’;
+———————————————————————————————————————————————+
| Grants for jtsec@192.168.8.123 |
+———————————————————————————————————————————————+
| GRANT ALL PRIVILEGES ON *.* TO ‘jtsec’@’192.168.8.123’ IDENTIFIED BY PASSWORD ‘*0B4AB716B6BE11F89101577836F3016D8EEAA217’ WITH GRANT OPTION |
+———————————————————————————————————————————————+
1 row in set (0.00 sec)
mysql select user,host from mysql.user;
+——-+—————+
| user | host |
+——-+—————+
| jtsec | 192.168.8.157 |
| root | localhost |
+——-+—————+
2 rows in set (0.00 sec)
mysql
原因2 : 用戶賬號存在,但未對其所在的客戶端的IP進行遠程訪問授權允許
檢查 :
以管理員ROOT登錄後 show grants for ‘user’@’IP’;
mysql show grants for ‘root’@’192.168.8.123’;
ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘192.168.8.123’
mysql
返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘192.168.8.123’
說明,沒有root用戶(因為是MySQL超級用戶所以排除此種可能),或者沒有對root用戶進行在192.168.8.123遠程訪問的授權。
我們來對比一下看,root用戶本地訪問的權限,則可查出:
mysql show grants for ‘root’@’localhost’;
+—————————————————————————————————————————————-+
| Grants for root@localhost |
+—————————————————————————————————————————————-+
| GRANT ALL PRIVILEGES ON *.* TO ‘root’@’localhost’ IDENTIFIED BY PASSWORD ‘*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B’ WITH GRANT OPTION |
+—————————————————————————————————————————————-+
1 row in set (0.00 sec)
或者直接查詢mysql的user用戶表select user,host from mysql.user;,其中記錄了每一個用戶的權限信息
mysql select user,host from mysql.user;
+——-+—————+
| user | host |
+——-+—————+
| root | localhost |
+——-+—————+
1 rows in set (0.00 sec)
mysql
關於user值為root的記錄數只有一條,且host值為localhost,說明root用戶只能在本地訪問數據庫。
處理 :進行root用戶的遠程訪問授權,可以授權到指定的客戶端IP,也可以授權為所有IP都可訪問(host值為%)。
授權為所有IP都使用用戶root,密碼root,來遠程訪問數據庫
mysql GRANT ALL PRIVILEGES ON *.* TO’root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)
再次進行授權的查詢
mysql show grants for ‘root’@’%’;
+——————————————————————————————————————————–+
| Grants for root@% |
+——————————————————————————————————————————–+
| GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY PASSWORD ‘*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B’ WITH GRANT OPTION |
+——————————————————————————————————————————–+
1 row in set (0.00 sec)
再次查詢授權表記錄
mysql select user,host,password from mysql.user;
+——-+—————+——————————————-+
| user | host | password |
+——-+—————+——————————————-+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+——-+—————+——————————————-+
2 rows in set (0.00 sec)
mysql
原因3 : 用戶賬號授權訪問的密碼不正確
檢查 :以管理員ROOT登錄後, select user,host,password from mysql.user;
mysql select user,host,password from mysql.user;
+——-+—————+——————————————-+
| user | host | password |
+——-+—————+——————————————-+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| jtsec | 192.168.8.123 | |
| jtsec | 192.168.8.123 | *0B4AB716B6BE11F89101577836F3016D8EEAA217 |
+——-+—————+——————————————-+
4 rows in set (0.00 sec)
mysql
根據查詢結果可以看出來,root賬戶的本地訪問和遠程訪問密碼一樣。
而jtse賬戶在192.168.8.123這個IP上,遠程訪問數據庫的密碼有兩個,其中一個為空(第三條記錄)。
也就是說在IP為192.168.8.123的客戶機上,使用jtsec這個賬戶遠程訪問數據庫,合法的密碼有兩個可以選擇:
一個是不輸入密碼(密碼為空),另一個是*0B4AB716B6BE11F89101577836F3016D8EEAA217(經過加密的),
其餘的輸入,都是錯的。
處理 :使用正確的訪問密碼進行訪問即可。
錯誤信息 :ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.8.88’ (10065)
原因 :MySQL服務器上防火牆的阻斷
檢查 :在Linux下查看iptables規則,看是否未對MySQL數據庫默認通信端口3306進行放行
處理 :
添加相應的放行規則
自己在 /etc/sysconfig/iptables 里加了一下代碼:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
或嘗試關掉防火牆
chkconfig ip6tables off
chkconfig iptables off
問題描述:
C:\Documents and Settings\Administratormysql -uroot -h 192.168.8.88 -proot
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.8.88’ (10065)
C:\Documents and Settings\Administrator
錯誤信息 :ERROR 2003 (HY000): Can’t connect to MySQL server on ‘hostxxxxx’ (10061)
原因 : mysqld數據庫服務沒有啟動。
檢查 :在windows 的任務管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啟動。
處理 :啟動mysqld 服務
錯誤信息 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
原因 : mysql服務器沒有賦予此客戶端遠程連接的權限。
檢查 :在mysql服務器本地查詢mysql庫里user表對應的host是否包含客戶端機器的IP(%為不限制IP允許遠程連接)。
處理 :修改mysql庫下的user表:update user set host ‘%’ where user ‘XXX’;flush privileges;
錯誤信息 :ERROR 1045 (28000): Access denied for user ‘usera’@’localhost’ (using password:NO)
原因 : 用戶賬號並未創建,遠程登錄時登錄指令未直接包含密碼項
檢查 :以管理員ROOT登錄後,show grants for ‘usera’@’localhost’; 或者 select user from mysql.user; 確認用戶賬號是否存在。
處理 :創建用戶賬號。
北大青鳥設計培訓:C++連接mysql數據庫的兩種方法?
現在正做一個接口,通過不同的連接字符串操作不同的數據庫(數據庫培訓數據庫認證)。
要用到MySQL(MySQL認證Mysql培訓)數據庫,以前沒用過這個數據庫,用aC++(C++培訓)ess和sqlserver比較多。
通過網上的一些資料和自己的摸索,大致清楚了C++連接mysql的方法。
洛陽IT培訓認為可以通過2種方法實現。
第一種方法是利用ADO連接,第二種方法是利用mysql自己的api函數進行連接。
第一種方法可以實現我當前的需求,通過連接不同的字符串來連接不同的數據庫。
暫時只連接了mysql,sqlserver,oracle,access。
對於access,因為它創建表的SQL語句不太兼容標準SQL語句,需要做一些處理,這裡暫時不說。
第二種方法只能針對於mysql數據庫的連接,不過用這種方法不用安裝MyODBC服務器程序。
不管用哪種方法,首先需要安裝Mysql數據庫,安裝方法請看“mysql安裝及一些注意點”。
最好安裝一個Navicatformysql,方便操作mysql數據庫。
下面分別說下這兩種方法:(一)通過ADO連接MySql數據庫1、通過ADO連接MySql數據庫,首先得安裝MyODBC服務器程序。
MyODBC版本要和MySql的版本對應上,否則會連接不上數據庫。
我用的版本分別是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。
安裝好後,點擊開始菜單-設置-控制面板-管理工具-數據源(ODBC)-用戶DSN-添加-選擇MySQLODBC5.1Driver。
如下圖:然後雙擊MySQLODBC5.1Driver進行配置。
配置好可以點Test進行下測試(如下圖),如果能連上會彈出connectionsuccessful對話框。
原創文章,作者:IQFS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137536.html