mysql 数据导入sqlserver_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企业版,方法如下:

1、找一张SQL server服务器版光盘,在光盘上找到目录“MSDE”并进入,运行SETUP.EXE文件,并按照程序要求进行安装。安装完成重新启动计算机。

2、运行光盘中的,AUTORUN.EXE文件,或让光盘自动运行,打开安装界面后,点击“安装SQL server 2000组件(C)”=》“安装数据库服务器(S)”这里程序将提示你“....服务器组件在此系统上不受支持,.....”点“确定”。进入新的安装界面,点击“下一步”,选择默认的 “本地计算机”=》“创建新的SQL server”=》“仅客户端工具”...,一路点击“下一步”。直至安装结束。重新启动计算机。

3、计算机名要改成全大写的,机器名在系统属性的“计算机名”里可以找到,比如取名“SERVER”,改名后,关闭“企业管理器” 。

4、到“开始”--“程序”-“Microsoft SQL Server”中打开“客户端网络实用工具”,点“别名”如果“服务器别名配置”里没有数据,我们需要手工添加,点 “添加”按钮。在“添加网络库配置”的“网络库”选项中,我们选择默认的“Named Pipes(P)”项,并为服务器取个别名“SERVER”,这时管道名称会自动添加“\\SERVER\pipe\sql\query”我们就不要管它了。点“确定”退出。

5、这一步我们要进入注册进行一下修改了,打开注册表编辑器,找到[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,都不行,都是出现字符集不匹配,后来把目标机器上的数据库文件都拷贝到自己的机器上竟然可以,十分诡异,下面详细说下

1、用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的一致,否则中文会出现乱码。

这种方法可以导入,但是字符集一直有问题,最后没有成功。

2、用命令,命令很简单

连接上MySQL后,选择数据库命令use 数据库名;导入命令:source XXX.sql这里的这个XXX.sql需要提前拷到MySQL的bin目录下,但是这种方式也是字符集问题,最后没有成功。

3.直接拷贝数据库文件

这种方法是把目标机器上的.frm,.MYD,.MYI文件拷贝到自己机器上MySQL安装目录data文件下对应数据库的文件夹中。必须保证你机器上MySQL的字符集和数据库源的MySQL字符集一致,我这里选的都是gb2312。然后用phpmyadmin访问,成功,中文也不是乱码了。

四、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数据库中。

五、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时碰到的问题,数据库由于配置较多,有时候会出现很诡异的问题,大家设置或者修改配置时一定得记得自己改了什么,还要把原始的那份备份下,以防出现意外错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值