MySql的數據如何導入到Sql Server數據庫中?
要點:mysql 和 mysql odbc 都是64位
當我們拿到MySql數據文件時,首先在MySql數據庫下建立一個新的數據庫,隨便取名為"dapingtai",將sql文件拖入查詢窗口會直接打開該文件,然后執行就會得到sql文件中的想要的表接口和數據,但是當sql文件比較大時,如上圖的bang-region-dump-160927.sql是102M大小的,直接拖入查詢窗口就會出現一個警告框
警告框告訴我們這個文件比較大,並提供了“打開”和“運行sql腳本”兩個操作選項。這里有一個小坑(直接點擊“Run SQL Script”會出現一個錯誤,如下圖),我們還是先“Open”,在執行吧。
成功執行上述兩文件,會得到一個名為“dapingtai”的MySql數據庫
接下來就開始我們MySql數據庫到Sql Server數據的轉化工作。。。
(一)為 MySQL安裝ODBC驅動
1. 下載MySQL ODBC Connector,下載:http://dev.mysql.com/downloads/connector
2. 從控制面板-管理工具,打開你的 數據源(ODBC),選 系統DNS ,點添加。
3. 在 創建新數據源對話框中,選擇MySQL ODBC 5.3 ANSI Driver ,點完成。
4.完成后會出現MySQL 鏈接對話框,添加你的 MySQL 數據庫賬號信息,並確認"root"賬號是否有全部的權限,如果你安裝MySQL 沒有修改的話, 不要改 3306這個端口號。
5.選擇要建立連接的數據庫,並測試。
(二)創建Microsoft SQL到MySQL的鏈接
1.在SQL Server Management Studio中打開一個new query 拷貝以下語句,修改為你的數據庫的名稱、賬戶密碼,並運行。
- EXEC master.dbo.sp_addlinkedserver
- @server = N'MYSQL',
- @srvproduct=N'MySQL',
- @provider=N'MSDASQL',
- @provstr=N'DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=127.0.0.1; _
- DATABASE=dapingtai; USER=root; PASSWORD=*******; OPTION=3'
2.這個腳本通過ODBC驅動創建一個聯接到你的MySQL數據庫,這個聯接出現在Microsoft SQL Server Management Studio如下圖:

沒有出現MYSQL這個連接的話,就刷新一下看看。
有的話點連接前的+號展開看看表是否都完全映射過來了。。。。這里也可能會有一個坑,反正我踩了。。。見下圖:
見到錯誤也不要着急,請仔細檢查調用master.dbo.sp_addlinkedserver傳遞的的參數@provstr所填寫的數據庫驅動是否和建立ODBC時所選的驅動名稱一致?MySQL ODBC的版本是不是不對應?錯誤往往都是自己的粗心大意而造成的哦。。。
(三). 在兩個數據庫之間導數據
在Microsoft SQL Server中創建個新的數據庫(如:homework1),在new query中拷貝如下語句,運行后就可以把MySQL 數據庫 “dapingtai"導入到Microsoft SQL 數據庫“homework1”中。
導入Region表
- SELECT * INTO [homework1].dbo.Region
- FROM openquery(MYSQL, 'SELECT * FROM dapingtai.region')
成功導入。。
導入Category表
- SELECT * INTO [homework1].dbo.category
- FROM openquery(MYSQL, 'SELECT * FROM dapingtai.category')
咦,出錯了!!!
來在MySql下看一下Category的表設計,keyword字段為VARCHAR(100)
我們查查看嘛,唉!還真有幾個不按套路出牌的家伙。。。。見下圖
好吧,我忍了。。。那keyword字段到底應該給多大呢?
索性把Category表的字段改為VACHAR(200),在執行就成功了。
最后!!!!!千萬不要忘了添加索引主鍵什么的哦,因為這種導入方式並不能導入表之間的關系,弄好這些以后就大功告成啦。。。評論走起