雪中悍刀行 http://bmdqw.com/
实践分享:ACCESS数据库导入mysql数据库
作为程序员很多时候要进行不同数据库之间的导入导出工作,这样是为了节省数据录入的时间。下面我就和大家分享一下如何把数据从ACCESS数据库导入mysql数据库。
首先说明一下思路,可以导入mysql的方法有很多,但不包过access直接导入,网上有很多介绍CSV格式导入mysql的,但操作很不方便,经常发生错误而无法导入。sql语句导入是最简单的。那有没有办法把access数据库转换成sql语句呢。下面本文的重点出现了,使用“DB2mysql.exe”工具,可以很方便的把access数据库转换成一句句的"insert into table"sql语句。生产了sql语句,就是直接复制语句粘贴到phpmyadmin总,运行即可。
下面是软件操作截图。
是不是很简单的,但有一点要说明下,通过DB2mysql导入的数据不支持中文,中文会变成?号。如何解决这个问题笔者正在思考实践中,如果广大的读者有好的方便欢迎留言交流!此文为站长网首发,转载请保留www.678baidu.com,谢谢。
第二篇:快速进行Access数据库转成mysql数据库及mysql导入中文数据乱码问题的解决方案
快速进行Access数据库转成mysql数据库及mysql导入中文数据乱码问题的解决方案 一、Access-to-mysql pro Access-to-mysql pro是一个可以直接将Access文件导入mysql中的软件,其基本用法参见了某人的某文如下:这个要用到 Access-to-MySQL Pro 这个软件。网上有下载,并且有破解版的。问题是如果直接用它来把ACCESS文件导入MYSQL会出现乱码。所以我试下以下方法,虽然麻烦点,但是还可是可行。5.1 用Access-to-MySQL Pro来把数据库导出为*.sql 文件。A) 运行Access-to-MySQL Pro的时候选ADVANCE MODE,下一步;B) 选择STORE into dump file, 就是保存为*.sql文件,下一步;C) 选择目标MYSQL的版本,选默认值,下一步;D) 这下要选MS ACCESS USER-LEVElL SECURITY FILE,这个文件一般在你的OFFICE安装目录下。我的是在G:\Program Files\Microsoft Office\Office\SYSTEM.MDW , 用户名填 ADMIN , 下一步;E) 选择你要转换的ACCESS MDB文件以及保存路径,点下一步,就可以生成.sql 文件了。我生成的是C:\test.sql。5.2 把刚才生成的文件转成UTF-8格式。 用记事本打开这个文件,选另存为,编码选UTF-8,覆盖保存就OK了。5.3 在MYSQL导入该文件我不在phpMyAdmin导入文件是因为phpMyAdmin默认只能导入17M的文件。懒得改相应的设置,MYSQL命令行方便些。进入DOS窗口,转到MYSQL安装目录的BIN子目录下。我这里是G:\Program Files\xapp\xampp\mysql\bin.A) mysql -uroot -p password:这里输入密码B) CREATE DATABASE hewang;C) use hewang;E) source c:\test.sql;有可能会出现错误提示音,不管他,等它再次出现提示符的时候,导入成功。我用这种方法导入一个50M的文件没有问题,只是提示音响了十分钟。可以在phpMyAdmin下查看数据是否正确,如果没有乱码就OK了。二、关于数据导入mysql时的乱码的解决方案当然上文是基于php下的乱码解决方案,我在MySQL Command Line Client下使用>source c:\test.sql时导入有中文字串的字段值的时候,从SQL Manager中查看记录都是乱码。我的解决方案如下:由Access-to-mysql生成的sql文件中有类似如下文本内容:CREATE TABLE `userinfo` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(50),'pwd' VARCHAR(20),PRIMARY KEY (`id`)) TYPE=InnoDB;注意红色的文本,修改成如下:CREATE TABLE `userinfo` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(50),'pwd' VARCHAR(20),PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gb2312;接下来,还要在文件中的LOCK TABLES `userinfo` WRITE;后面,INSERT INTO `userinfo`....文本的前面增加如下一行,如下:LOCK TABLES `userinfo` WRITE;SET NAMES 'gb2312';INSERT INTO `userinfo` VALUES这样修改这个文件以
后,还要将它以ANSI编码重新保存。这样操作以后,在MySQL Command Line Client中使用>source test.sql后导入mysql数据的字串都是正确的了。并且,所有文本相关的编码也都是gb2312的编码。