第 6 章 主控端與伺服端連線設定

35
主主主主主主主主 - CH6 1 第6第 第第第第第第第第第第第

Upload: dawn-sanford

Post on 14-Mar-2016

51 views

Category:

Documents


2 download

DESCRIPTION

第 6 章 主控端與伺服端連線設定. 本章宗旨. 簡介 MyODBC 工作原理 簡介 ODBC 資料管理員使用方法 簡介主從端各種連線方法與安全比較. 大 綱. 6-1 MyODBC 工作原理 6-2 ODBC 資料管理員連線 6-3 應用程式連線 6-4 選項參數說明 6-5 連線方法比較. 6-1 MyODBC 工作原理. 6-1-1 工作原理 6-1-2 應用程式 6-1-3 驅動程式管理員 6-1-4 驅動程式( MyODBC ) 6-1-5 MySQL Server. 應 用 程 式. 驅動程式管理員. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 1

第 6 章 主控端與伺服端連線設定

Page 2: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 2

本章宗旨 簡介 MyODBC 工作原理 簡介 ODBC 資料管理員使用方法 簡介主從端各種連線方法與安全比較

Page 3: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 3

大 綱6-1 MyODBC 工作原理 6-2 ODBC 資料管理員連線 6-3 應用程式連線 6-4 選項參數說明 6-5 連線方法比較

Page 4: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 4

6-1 MyODBC 工作原理6-1-1 工作原理6-1-2 應用程式6-1-3 驅動程式管理員6-1-4 驅動程式( MyODBC )6-1-5 MySQL Server

Page 5: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 5

6-1-1 工作原理 開放式資料庫處理架構

應 用 程 式驅動程式管理員

ODBC.INI

MyODBC

MySQL Server

Page 6: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 6

6-1-2 應用程式 應用程式( AP, Application Program )負責叫用 ODBC API ,同時命令 ODBC 去存取資料庫伺服器內的資料 一般說來,資料存取工作是由 ODBC 負責的, 因此 AP 不用理會資料存放在何處、如何存放,以及如何存取資料,它唯一需要知道的就是資料來源名稱( DSN, Data Source Name )

Page 7: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 7

6-1-2 應用程式 ( 續 )

AP 需要負責之任務 : 選擇 MySQL 伺服器並與它連結 發出 SQL 指令 收回 SQL 處理結果 處理錯誤 確認 SQL 處理結果或是捲回原狀 離線

Page 8: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 8

6-1-3 驅動程式管理員 驅動程式管理員是一個程式館,負責管理 AP和驅動程式之溝通工作 它的主要職責有下列三項:

剖析 DSN 載入和結束驅動程式 處理 ODBC 函數或叫用驅動程式

Page 9: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 9

6-1-4 驅動程式( MyODBC ) 驅動程式也是一個程式館,負責執行 ODBC A

PI 內部之函數 執行過程:

處理 ODBC 函數呼叫 送出 SQL 指令至伺服器 將結果送回給 AP 必要的話,它會自動修正 AP 之指令格式

Page 10: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 10

6-1-4 資料來源參數檔 -ODBC.INI

資料來源參數檔,用來儲存與伺服器連線所需之參數,檔案內容是以資料名稱來識別各個驅動程式與伺服器之連線設定

Page 11: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 11

6-1-5 MySQL Server 提供原始資料的地方

Page 12: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 12

6-2 ODBC 連線 連線設定步驟 :

1. 在桌面點取【設定】2. 點取【控制台】3. 點取【系統管理工具】4. 雙點【資料來源 ODBC 】

Page 13: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 13

6-2-1 開啟 ODBC 設定畫面

Page 14: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 14

6-2-2 設定系統資料來源

Page 15: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 15

6-2-3 選擇驅動程式

Page 16: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 16

6-2-3 選擇驅動程式 ( 續 )

Page 17: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 17

6-2-4 連線參數設定

Page 18: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 18

6-2-4 連線參數設定 ( 續 )

Data Source Name :用來識別資料來源之名稱,不得與舊資料名稱重複 Description :註解用途 Host/Server Name(or IP) :指定連線伺服器之名稱,若伺服器與主控端位於同一台電腦上,可設定為【 lo

calhost 】 ( 預設值 ) 。此外,也可以輸入 URL 型式之名稱,例如 www. nuu.edu. tw 或” 203.64.185.201”

Database Name :輸入要連線之資料庫名稱

Page 19: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 19

6-2-4 連線參數設定 ( 續 )

User :輸入帳號(必須是伺服端有授權之帳號),假如伺服器是安裝在連線電腦上,則預設帳號為” root” Password :輸入你的密碼 Port :與伺服端對話之連接埠,預設值為 3306 SQL command on connect :設定啟動連線時立即執行之 SQL 指令,可保留不設定

Page 20: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 20

6-2-4 連線參數設定 ( 續 )

連線設定測試 按視窗之【 Test Data Source 】按鈕進行連線測試

連線成功畫面

Page 21: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 21

6-3 應用程式連線 基本上,可使用下列三種方式連線

使用資料名稱連線 直接以應用程式連線 將 MySQL 資料表連入 Access

Page 22: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 22

6-3-1 使用資料名稱連線應用程式範例

1. 宣告變數 Dim con As New ADODB.Connection 說明 : ‘ 宣告 ADO 連線物件 Dim cn_str AS String 說明 : 宣告字串變數

Page 23: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 23

6-3-1 使用資料名稱連線 ( 續 )

2. 設定連線屬性 con.CursorLocation = adUseClient 說明 : ‘ 將游標控制權指定在主控端 cn_str = "DSN=Mysal;" 說明 : ‘ 指定連線資料名稱 con.ConnectionString = cn_str 說明 : ‘ 將連線資料加入連線物件

Page 24: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 24

6-3-1 使用資料名稱連線 ( 續 )

3. 開啟連線 If Not con.state = adStateOpen Then con.Open 說明 : ‘ 若連線物件尚未啟動,則以 Open 方法開啟連線

Page 25: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 25

6-3-2 以應用程式連線1. 宣告變數

Dim con As New ADODB.Connection說明 : ‘ 宣告 ADO 連線物件 Dim cn_str AS String 說明 : ‘ 宣告字串變數

Page 26: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 26

6-3-2 以應用程式連線 ( 續 )

2. 設定連線屬性 cn_str = "Driver={MySQL ODBC 3.51 }; “ & _ “Server= localhost; " & _ "Database= 資料庫名稱 ;” & _ "User= 使用者帳號 ; “ & _ “Password= 使用者密碼 ;” & _ “Option=3 " ‘ 最後一項不要加上 ; con.CursorLocation = adUseClient ‘ 游標控制權指定在主控端 con.ConnectionString = cn_str ‘ 連線參數加入連線物件

Page 27: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 27

6-3-2 以應用程式連線 ( 續 )

3. 開啟連線 If Not con.state = adStateOpen Then con.Open 說明 :‘ 若連線物件尚未啟動,則以 Open 方法開啟連線 啟動連線之後,我門就可以使用連線物件 con 開啟相關的資料表,或是使用連線物件來執行 SQL 指令和專案

Page 28: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 28

連線參數使用說明 參數 預設值 註解

user Windows 連線至MySQL.之帳號server localhost MySQL 伺服器主機位址database   The default database.

option 0 詳見表 6-2

port 3306 主機非 localhost 時 TCP/IP  協定使用之通訊埠 .

stmt   A statement to execute when connecting to MySQL.

password   連線至MySQL.之密碼socket   主機為 localhost時以 Unix socket file或 Windows named 

pipe連線

Page 29: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 29

6-3-3 MySQL 資料表連入 Access

此種連線方式,乃直接將 MySQL 資料表加入Access 資料庫內,加入前,需要指定資料來源,來源名稱就是本章第一節設定之名稱

加入資料表之程序,請參看 Access 之操作章節說明

Page 30: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 30

6-4 選項參數說明 數值 說明

1 欄寬不做最佳化處理2 傳回匹配紀錄值4  紀錄驅動程式動作在 c:\myodbc.log 檔8 允許大型資料表

16 連線時不提示32 允許動態游標64  忽略 db_name.tbl_name.col_name格式

Page 31: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 31

6-4 選項參數說明 ( 續 )

128 使用驅動程式管理員游標256 不允許結果存在近端512 字元欄位完整呈現

1024 以 SQLDescribeCol() 型式傳回資料表名2048 使用壓縮協定4096 忽略函數括弧前後之空白字元8192 NT 系統以 named pipes 連線16384 長整數型轉型為整數型

Page 32: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 32

6-4 選項參數說明 ( 續 )

32768  以帳號取代 Table_qualifier   和 Table_owner 

65536 從 my.cnf 讀取  [client]   和 [odbc] 群組設定值131072  安全檢查 (最好不設定,除非發生問題 )

262144 不允許交易機制524288 允許查詢記錄在 c:\myodbc.sql (只允許在 debug 模式 )

1048576 查詢結果不做快取 (  只允許 Forward-only游標 )

2097152 強制使用 Forward-only游標

Page 33: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 33

MySQL推薦參數      系統規劃 Option

Access 3

Visual Basic 3

大型資料表包含大量紀錄 2049

追蹤紀錄 (除錯模式 ) 4

 記錄查詢結果 (除錯模式 ) 524288

追蹤紀錄及查詢結果 (除錯模式 ) 524292

大型資料表無快取 3145731

Page 34: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 34

6-5 連線方法比較 從安全性考量來說,第一種連線方式是非常不安全的,只要有人能開啟你的電腦,他就可以輕而易舉的使用你設定的資料來連上伺服器 相對而言,第二種方式較為安全。但是,只要他能開啟你的 Access 檔案,他還是可以查看你的資料,或是竊取你的帳號密碼。所幸, Access 可以設定密碼,也可以將原始程式編譯,對於非駭客籍人士,可以杜絕他們侵入你的系統

Page 35: 第 6 章  主控端與伺服端連線設定

主從式資料庫系統 - CH6 35

6-5 連線方法比較 ( 續 )

第三種方式之安全性和第一種類似,也是非常不安全的,通常此種方式適用於非多人使用之資料庫系統。使用第三種方式並非一無是處,直接匯入 Access 之後, Access許多介面即可直接套用,發展應用介面時將非常方便