成功将MySQL的大型数据导入导出和备份(转载)

Posted on 2006-11-25 23:15 Jaunt 阅读(776) 评论(0)  编辑  收藏 所属分类: Database

成功将MySQL的大型数据导入导出和备份

Filed under: MySQL — Jet @ 12:47 pm

原来的数据使用的是MySQL4.1,大概有800M左右。使用 mysqldump -u username -p dbname > “filename”
导出的时候很容易死掉,而且数据也出现乱码。后来找到一个非常好用的工具-SQLyog,它里面有数据导入导出功能,而且效率非常的高(我800M的数据导出或导入都不到5分钟)。

下面来说说整个的过程:
1. 首先打开SQLyog,创建远程数据库连接。

2. 然后选择“Tools”-“Export Data As SQL Statements”,选择数据库和表以及保存的sql文件名,然后点击“Export”按钮。这样就将数据备份到了sql文件中。如果导入的话选择 “Tools”-“Import From SQL Statements”,然后选择sql文件执行就可以了。

3. 如果是导入到本地的MySQL中的话只要断开远程数据库连接然后创建本地连接,接下来使用导入命令就可以了。

说明几点:
1. 导出的时候可以选择“只导出数据库结构”和“导出数据库结构和数据”,另外还有许多选项,比如是否自动创建新的数据库,是否删除存在的表等等,可以根据自己的需要选择。

2. 导入数据的时候可能会出现 Got a packet bigger than ‘max_allowed_packet’ bytes 的错误提示(在SQLyog的错误日志里面),这是因为MySQL默认的 max_allowed_packet 设置为 1M,增大这个参数就可以了,比如设置为8M。默认的my.ini文件中是没有这个参数的,可以自行添加。

3. SQLyog 的官方地址为:http://www.webyog.com/

4. 最后补充几点点有些题外的问题,一个是使用SQLlog直接查看数据的时候显示的是乱码,这个是没有关系的,仅仅是软件显示的时候编码不对而已,解决的方法跟MySQL-Front类似,具体看 MySQL-Front查看中文数据出现乱码的解决方法;另外一个就是使用SQLyog创建用户的时候如果使用PHP连接的时候会出现“Client does not support authentication protocol requested by server…”的提示,这是因为PHP连接数据库还是使用的MySQL4.1以前的方式,所以还需要执行下面的SQL脚本一下(这点跟在 PHPMyAdmin中是类似的):

  1. set password for username @ localhost = old_password ( ' yourPassword ' ) ;
  2. flush   privileges ;

参考资料:
MySQL比较好的数据备份方式
http://www.kuaiyigang.com/post/66.htm

转载链接:http://www.javatang.com/archives/2006/11/14/473383.html


只有注册用户登录后才能发表评论。


网站导航: