方法一:
1.導(dǎo)表結(jié)構(gòu)
使用mysql生成create腳本的方法。找到生成要導(dǎo)出的腳本,按mysql的語法修改一下到mysql數(shù)據(jù)庫中創(chuàng)建該表的列結(jié)構(gòu)什么的。
2.導(dǎo)表數(shù)據(jù)
在mssql端使用bcp導(dǎo)出文本文件:
bcp select * from dbname.dbo.tablename; queryout tablename.txt -c -slocalhostdb2005 -usa
其中中是要導(dǎo)出的sql語句,-c指定使用t進(jìn)行字段分隔,使用n進(jìn)行記錄分隔,-s指定數(shù)據(jù)庫服務(wù)器及實(shí)例,-u指定用戶名,-p指定密碼.
在mysql端使用mysqlimport 導(dǎo)入文本文件到相應(yīng)表中
mysqlimport -uroot -p databasename /home/test/tablename.txt
其中-u指定用戶名,-p指定密碼,databasename指定數(shù)據(jù)庫名稱,表名與文件名相同。
方法二:
mysql migration toolkit 應(yīng)該是可以用的。
1、把mysql migration toolkit安裝在運(yùn)行有ms sql server的機(jī)器上;
2、此機(jī)器還需要安裝java環(huán)境和jdbc驅(qū)動(dòng):
java環(huán)境去sun網(wǎng)站上下載,jdbc驅(qū)動(dòng)去mysql網(wǎng)站上下載(mysql-connector-java-5.0.5.zip),并且設(shè)置好路徑的環(huán)境變量;
3、如果你原來的數(shù)據(jù)庫里有中文字符,必須顯式設(shè)置幾個(gè)有關(guān)字符集的地方:
a. source database 選擇database system為ms sql:
這里需要手動(dòng)寫jdbc連接串:點(diǎn)擊界面下方的advanced鍵,出現(xiàn)一個(gè)方框,提示輸入 connection string:,在這里輸入如下格式:
jdbc:jtds:sqlserver://ip:port/yourdb_name;user=user;password=passwd;charset=gb2312(or gbk);domain=
其中,大寫 ip, port, yourdb_name,user, passwd都是要用實(shí)際ms sql server服務(wù)器的ip和端口,數(shù)據(jù)庫名,數(shù)據(jù)庫用戶名,密碼填寫;
b. target database 同樣需要手動(dòng)編輯jdbc連接串:
點(diǎn)擊界面下方的advanced鍵,出現(xiàn)一個(gè)方框,提示輸入connection string:
在這里輸入如下格式:
jdbc:mysql://ip:3306/?user=user&password=passwd&useserverprepstmts=false&characterencoding=gbk
其中,大寫 ip, user, passwd都是要用實(shí)際mysql服務(wù)器的ip,數(shù)據(jù)庫用戶名,密碼填寫
c. 選擇sql server的schema和表
d. object mapping
修改migration of type mssql table:
點(diǎn)擊set parameter,選擇user defined, 設(shè)置charset=gb2312(or gbk), collation=gb2312(or gbk)_chinese_ci
e. 之后沒有別的選項(xiàng),一直到最后
f. 移植完以后,用圖形工具(mysql query browser、sqlyog等)或用mysql客戶端(命令行)聯(lián)接,都可以看到中文。
在客戶端(命令行),先執(zhí)行
mysql> set names gb2312(or gbk);
4、由于ms sql server和mysql在語法格式和數(shù)據(jù)類型定義等方面有一定的差異,所以移植過程不是很簡(jiǎn)單,可能需要反復(fù)幾次,修正語法格式和數(shù)據(jù)類型定義。mysql migration toolkit可以讓用戶手動(dòng)修改生成的mysql sql語句,在其中的manual editing一節(jié)
更多信息請(qǐng)查看IT技術(shù)專欄