MySQL数据库在windows环境下备份与恢复
1. 概述
MySQL数据库的导入,有三种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。
一,数据库备份,一共三种方式。
第一种:
用mysqldump命令行备份数据库。
命令格式
mysqldump -u用户名 -p 数据库名 > 保存名.sql
范例:
mysqldump -uroot -p dataname > d:\abc.sql
(导出数据库data到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
第二种: 指定导出备份编码
mysqldump -u root -p密码 --default-character-set=数据编码 数据库名称> file.sql
案例:mysqldump -u root -p123456 --default-character-set=utf8 discuss_chi> 1.sql
第三种
用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。
二,恢复数据库,一共二种方式。
第一种:
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use databasename;
1、确定数据库默认编码,比如编码为gbk,将读入途径编码同样设为gbk,命令为:
set names gbk;(导入数据出现乱码的时候用平常不用)
2、然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc.sql
第二种;定义还原编码类型
定义编码导入
mysql -u root -p --default-character-set=utf8 -f dataname<dis.sql
如果乱码使用二进导入
mysql -u root -p --default-character-set=binary -f dataname<dis.sql
第三种:
用phpMyAdmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。
注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
提示输入密码时,输入该数据库用户名的密码。
方法四
直接拷备MySQL安装目录下DATA目录的数据库即可
注:备份最好两个方法都做
如果导入导出出现乱码请使用下面方便备份还原试试(导出和导入都使用二进方式
)
导出
mysqldump -u root -p --default-character-set=binary discuss_chi> dis.sql
导入
mysql -u root -p --default-character-set=binary -f discuss_chi<dis.sql