將數據從 mysql 遷移到 microsoft sql server 的最直接選項是安裝 myodbc 支持并創建一個 dts 程序包,用它們將數據庫從 mysql 導入并創建到 microsoft sql server。 以下是設置 microsoft sql server 以遷移 mysql 數據庫的逐步操作。
安裝 myodbc 支持,它可在以下網址下載 http://www.mysql.com/
安裝過程中,系統會提供以下對話框:
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。 填寫 odbc 安裝設置,使用如下信息: windows dsn 名稱:
test
說明:
這是個測試數據庫
mysql 數據庫:
test
服務器:
seawolf.microsoft.com
用戶:
cgunn
密碼:
my_password
端口:
3306
使用上述設置后,windows dsn 名稱在建立連接的計算機上必須唯一,服務器設置會完全驗證域名(確保 dns 或您提供的名稱具備名稱解析)或 ip 地址的有效性。
然后,執行 dts 向導程序。從 microsoft sql server 程序組中選擇“import and export data”,您會看到以下對話框。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。 單擊 next 到下一步。
現在提供必要的數據源選擇信息,此信息應該是,odbc 數據源為 mysql,test 為 system dsn,然后提供安全證書、用戶名和密碼(見下一個對話框),然后單擊 next。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
填寫目標連接的詳細信息,如下面的對話框所示,然后單擊 next。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
specify table copy or query 對話框讓您在此選擇數據源中的數據庫對象選項,這里的數據源是 mysql。在來源數據庫中選擇 copy table(s) 和 view(s)。另外需要說明的重要一點是,mysql 不支持視圖,所以選擇此選項后,它將只復制數據表對象,單擊 next 繼續。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
下一個是 select source tables and view 對話框,您可以在這個對話框中選擇來源數據表和目標數據表。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
單擊橢圓按鈕進行數據轉換,如下面的 column mappings and transformations 對話框所示。
用 mysqldump 生成腳本后,可以將腳本傳輸到 sql server - 使用類似文件傳輸協議 (ftp) 的應用程序將腳本從 mysql 主機傳輸到 sql server 2000 計算機。
通過 sql 查詢分析器使用提取的腳本
生成的腳本現在可以用于創建數據庫對象和插入數據。從 mysql 腳本構建數據庫架構的比較好的方法是使用 sql server 2000 中的 sql 查詢分析器。 您可以直接從開始菜單運行 sql 查詢分析器,也可以從 sql server 企業管理器運行。也可以通過執行 isqlw 實用程序從命令行運行 sql 查詢分析器。 為了讓腳本正確執行,還需要一些額外的工作,這需要對 sql 語言進行某些更改。同樣,記住逐步運行 sql 腳本,并將數據類型更改為 sql server 兼容類型。下圖顯示了從 mysqldump 導入的一個腳本,需要說明的重要一點是,轉儲的是一個 ascii 腳本文件。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。 microsoft sql server 2000 sql 查詢分析器允許您:
創建查詢和其它 sql 腳本并對 sql server 數據庫執行這些腳本
用預定義腳本迅速創建常用數據庫對象
迅速復制現有的數據庫對象
無需知道參數就可以執行存儲過程
調試存儲過程
調試查詢性能問題
定位數據庫中的對象,或者查看并使用對象
在數據表中迅速插入、更新或刪除行
為常用查詢創建鍵盤快捷方式
將常用命令添加到工具菜單
擴展應用程序
將 mysql 應用程序的數據管理部分移到 microsoft sql server 后,您可以讓 sql server 保護數據并維護所有引用完整性和用 transact-sql 編寫的業務規則。 諸如 ado、ole db 和 odbc 這樣的數據庫應用程序編程接口 (api) 通過多種編程語言顯示數據庫數據。您可以用 microsoft visual c++、microsoft visual basic 和 microsoft visual j++ 這樣的開發系統訪問這些 api。 此外,如果應用不斷擴展,您不需要更改應用程序就可以將 microsoft sql server 移到更大的計算機;sql server 能自動識別硬件配置,并因此自我調節,以獲得最佳的內存、i/o 和處理器利用率。
從 internet 訪問數據
sql server 提供了將應用程序擴展到基于 web 的接口的能力。這個能力使您可以隨時隨地訪問應用程序。通過使用 iis web 服務器并在 active server pages (asp) 中使用 activex 數據對象 (ado),sql server 可以與 microsoft internet information services (iis) 集成在一起,從而提供了一個訪問 sql server 中所保存數據的快速、高效的用戶接口。 詳細信息請參見 http://www.msdn.microsoft.com
安全性
sql server 2000 中的數據庫安全性既穩定又便于維護。不論是 sql server 還是 mysql,重要的是要在兩個層面考慮安全性。1) 能訪問服務器,2) 能訪問單個數據庫。 mysql 有一個獨特的加強服務器訪問安全性的方法 - 限制對數據源的訪問。如果是客戶端,則使用 ip 地址或完全合格的域名、通配符(如‘%’)。sql server 需要用戶帳戶,不論是由操作系統管理還是保存在 sql server 的 master 數據庫中。 sql server 利用角色提供了組訪問,這可以通過為用戶組建立通用訪問來方便數據庫的管理。 以下步驟概要介紹了 microsoft sql server 如何通過企業管理器工具提供對服務器和數據庫的訪問。
打開企業管理器,找到“security folder”,選擇 logins 圖標,用鼠標右鍵單擊并選擇 new login。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。 出現 sql server login properties 對話框后,輸入登錄名稱,這與 mysql 中的用戶名類似。選擇 sql server 身份驗證以提供一個對該 sql server 有效的安全級別。
指定默認數據庫和語言。
在對話框頂部選擇 server roles 選項卡,以提供對服務器權限的訪問信息,這里突出顯示的角色是 sysadmins(系統管理員),它相當于 mysql 中的根訪問。
下一個選項卡是 database access。這個屬性頁不但提供對單個數據庫的訪問,而且可以訪問實際位于 sql server 上的索引數據庫。選擇數據庫后,再設置數據庫角色。默認情況下,所有用戶都可訪問公共角色。這個角色仍然需要分配權限。此圖中還選擇了另一個角色 db_owner,它只允許用戶無限制訪問數據庫,但不能無限制訪問整個 sql server 或者其它數據庫,除非單獨選擇了其它數據庫并分配了 db_owner 權限。
單擊 ok 后,會出現輸入密碼的提示。
企業管理器中出現新的登錄。您還會注意到此圖中有一個名為“sa”的登錄帳戶,這個系統管理員帳戶需要有密碼,在安裝 sql server 的過程中,會有一個為此登錄保留空密碼的選項,您應該指定這個密碼。 如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。 有關創建 microsoft sql server 登錄的詳細信息,請參閱 sql server 聯機圖書的“管理安全性”主題。
數據庫權限
sql sever 2000 也通過限制對數據庫定義語言 (ddl) 以及數據操縱語言 (dml) 聲明權限的訪問提供了數據庫安全保護能力,設置步驟與創建登錄類似。使用企業管理器工具可以方便地設置 sql server 數據庫權限。
要想轉儲 mysql 數據,請使用以下命令: #> mysqldump -u user name -ppassword -opt databasename < filename.sql 若想用 mysqldump 輸出文本文件重新創建數據庫,請使用以下命令: #> mysql -u user name -ppassword databasename < filename.sql
優化命令行選項
使用 -opt 可以自動在 mysqldump 命令行中啟用選項。有關轉儲 mysql 數據的更多信息,請參見“轉儲 mysql 數據”一節。下表是 --opt 命令: 命令 說明 --add-drop-table