MySQL數據庫導入SqlServer實踐經驗總結

工做中有個任務是把MySQL數據庫導入SqlServer中,由於任務緊急,這週一直在加班作,過程很是曲折,軟件重裝了幾遍,網上資料也查了很多,基本上全部的問題都遇到了,不過總算是弄好了,期間也學到很多東西,仍是總結一下!
一.MySQL的安裝和基本操做(以前徹底沒用過)
1.安裝的是mysql-essential-5.0.51b-win32.msi,同時安裝了mysql-gui-tools-5.0-r17-win32.msi(這是個圖形用戶化界面,這個工具聽說比較強大,可是我只用到其中最基本的功能,其餘還有待學習)。安裝過程沒什麼好說的,基本是按照嚮導提示,可是我第一次安裝的時候沒有提示輸入用戶名和口令,直接致使鏈接MySQL的時候連不上,試過網上一些強制重置口令的方法,都沒有成功,因此也不寫出來了,後來卸載了重裝就行了。
2.鏈接MySQL:
.進入安裝目錄的bin目錄下,輸入命令 mysql -u root -p回車,會提示輸入密碼,輸入後,會出現mysql提示符,代表鏈接成功。
3.基本的命令:
1、顯示當前數據庫服務器中的數據庫列表:
mysql> SHOW DATABASES;
2、顯示數據庫中的數據表:
mysql> USE 庫名;
mysql> SHOW TABLES;
3、顯示數據表的結構:
mysql> DESCRIBE 表名;
4、創建數據庫:
mysql> CREATE DATABASE 庫名;
5、創建數據表:
mysql> USE 庫名 ;
mysql> CREATE TABLE
表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
6、刪除數據庫:
mysql> DROP DATABASE 庫名;
7、刪除數據表:
mysql> DROP TABLE 表名;
8、將表中記錄清空:
mysql> DELETE FROM 表名;
9、顯示錶中的記錄:
mysql> SELECT * FROM 表名;
10、往表中插入記錄:
mysql> INSERT INTO 表名 VALUES (」hyq」,」M」);
11、更新表中數據:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';
關於MySQL基本網上的介紹不少,能夠查詢,須要說明的是MySQL的配置文件是安裝目錄下的my.ini,這個文件很重要,裏面存在了不少配置信息,這個文件出錯極可能致使MySQL服務不能啓動,這個文件在C:WINDOWS目錄下也有一個,需和安裝目錄下的一致,修改的時候這兩個都要修改。還有就是MySQL安裝的時候會讓選擇默認的字符集,安裝時若是已經明確字符集能夠提早選好,能夠省去不少麻煩,若是沒有選擇也沒關係,安裝好後能夠修改,關於字符集下面會專門說下。
二 SqlServer安裝及注意事項
1.安裝
原本安裝的是SqlServer 2005 express版本,這個版本免費,可是不少功能受限制,好比導入導出數據功能就沒有,只好卸載了重裝SqlServer 2000,卸載了安裝有時會出現問題,緣由是註冊表有個項沒刪乾淨,打開註冊表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations項目,並刪除它。這樣就能夠清除安裝暫掛項目。
還有一個問題就是xp上很差安裝SqlServer2000企業版,方法以下:
一、找一張SQL server服務器版光盤,在光盤上找到目錄「MSDE」並進入,運行SETUP.EXE文件,並按照程序要求進行安裝。安裝完成從新啓動計算機。
二、運行光盤中的,AUTORUN.EXE文件,或讓光盤自動運行,打開安裝界面後,點擊「安裝SQL server 2000組件(C)」=》「安裝數據庫服務器(S)」這裏程序將提示你「....服務器組件在此係統上不受支持,.....」點「肯定」。進入新的安裝界面,點擊「下一步」,選擇默認的 「本地計算機」=》「建立新的SQL server」=》「僅客戶端工具」...,一路點擊「下一步」。直至安裝結束。從新啓動計算機。
三、計算機名要改爲全大寫的,機器名在系統屬性的「計算機名」裏能夠找到,好比取名「SERVER」,更名後,關閉「企業管理器」 。
四、到「開始」--「程序」-「Microsoft SQL Server」中打開「客戶端網絡實用工具」,點「別名」若是「服務器別名配置」裏沒有數據,咱們須要手工添加,點 「添加」按鈕。在「添加網絡庫配置」的「網絡庫」選項中,咱們選擇默認的「Named Pipes(P)」項,併爲服務器取個別名「SERVER」,這時管道名稱會自動添加「\\SERVER\pipe\sql\query」咱們就不要管它了。點「肯定」退出。
五、這一步咱們要進入註冊進行一下修改了,打開註冊表編輯器,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
MSSQLServer\MSSQLServer],這一項,裏面有一個鍵值LoginMode默認值是「1」,如今將該值改成「2」(安裝MSDE時,默認的SQL Server身份驗證方式爲「僅 Windows"的身份驗證方式,即sa用戶沒法驗證,經過修改以上的註冊表鍵值來將身份驗證方式改成SQL Server和Windows混合驗證之後,就能夠用sa用戶登陸了)。修改完畢,重啓電腦成功了。
三 MySQL數據庫導入
目標是目標機的MySQL數據庫導到我本身的機器上。試過三種方法,把目標機器上的數據庫用phpmyadmin導出爲.sql溫江,而後用phpmyadmin,或者命令行導入MySQL,都不行,都是出現字符集不匹配,後來把目標機器上的數據庫文件都拷貝到本身的機器上居然能夠,十分詭異,下面詳細說下
一、用phpmyadmin
phpmyadmin較新的版本中有Import這個功能,老版本沒有,phpmyadmin的配置就不講了,主要是config.inc.php文件裏面有很多選項,網上講的比較多,就不重複了。
要注意的是
$cfg['Servers'][$i]['only_db'] = 'XXX';指定這個選項後,phpmyadmin中就只會出現指定的數據庫了。
phpmyadmin限制上傳文件的大小,默認是2M,能夠經過修改配置文件 php.ini(在php的安裝目錄下)來指定你想上傳的大小。主要是這三個參數:post_max_size、upload_max_filesize、 memory_limit,還有的說max_execution_time 和max_input_time 也需修改,不過我只改了前面的就ok了。
用phpmyadmin也能夠創建數據庫和數據表,這裏需注意新建的時候字符集的選擇必須和MySQL的一致,不然中文會出現亂碼。
這種方法能夠導入,可是字符集一直有問題,最後沒有成功。
二、用命令,命令很簡單
鏈接上MySQL後,選擇數據庫命令 use 數據庫名;導入命令 source XXX.sql 這裏的這個XXX.sql須要提早拷到MySQL的bin目錄下,可是這種方式也是字符集問題,最後沒有成功。
3.直接拷貝數據庫文件
這種方法是把目標機器上的.frm,.MYD,.MYI文件拷貝到本身機器上MySQL安裝目錄data文件下對應數據庫的文件夾中。必須保證你機器上MySQL的字符集和數據庫源的MySQL字符集一致,我這裏選的都是gb2312。而後用phpmyadmin訪問,成功,中文也不是亂碼了。
4、MySQL導入SqlServer
方法:
  1.安裝mysql數據庫的ODBC驅動mysql-connector-odbc-5.1.5-win32.msi(最好去官網下最新版本,不然對中文字符集支持的很差,我開始用的版本比較老,導進去以後,中文都是問號)  
       2.打開控制面板\管理工具\數據源ODBC,在用戶DSN中添加一個MySQL ODBC 5.1數據源。
  3.在登陸login選項卡中輸入數據源名稱Data Source Name,此處輸入MysqlDNS;而後輸入服務器Server,用戶User,密碼Password,輸入正確後選擇要導入的數據庫。在鏈接選項connect options中根據須要設置MySql使用的端口port和字符集Character Set。
   4.打開sql server企業管理器,新建一數據庫MySql。選擇該數據庫,單擊右鍵選擇全部任務\導入數據。
  5.選擇數據源爲其它(ODBC數據源),用戶/系統DSN爲MysqlDNS。其他根據嚮導進行,便可將數據從MySql數據庫導入到MSSQL數據庫中。
5、MySQL字符集
MySQL字符集一直比較亂,出的問題比較多,網上的解決方案也五花八門,我以爲這個主要是看rp。。。這裏只簡單介紹下相應的知識。
查看MySQL字符集的命令 mysql> show variables like '%char%';出現
+--------------------------+-------------------------------------+------
| Variable_name            | Value                               |......
+--------------------------+-------------------------------------+------
| character_set_client     | utf8                                |......   -- 客戶端字符集
| character_set_connection | utf8                                |......
| character_set_database   | utf8                                |......   -- 數據庫字符集
| character_set_filesystem | binary                              |......
| character_set_results    | utf8                                |......
| character_set_server     | utf8                                |......   -- 服務器字符集
| character_set_system     | utf8                                |......
| character_sets_dir       | D:\MySQL Server 5.0\share\charsets\ |......
+--------------------------+-------------------------------------+------
這裏除了character_set_system     沒辦法改之外,其餘均可以用命令修改,如SET character_set_client='gbk';不過這種修改重啓MySQL服務器之後就恢復成原來的了,須要到my.ini中修改default-character-set(有兩處都要改)。
字符集不匹配致使中文亂碼的問題比較多,網上說的解決方案也不定奏效,能夠多修改幾種編碼方案都試一下,記得讓MySQL,phpmyadmin,還有數據庫的字符集一直,不肯定字符集能夠用上面介紹的命令查看。
總結:以上是完成MySQL導入SqlServer時碰到的問題,數據庫因爲配置較多,有時候會出現很詭異的問題,你們設置或者修改配置時必定得記得本身改了什麼,還要把原始的那份備份下,以防出現意外錯誤。
相關文章
相關標籤/搜索