MySQL备份与还原

来源:互联网 发布:java 协程 服务器框架 编辑:程序博客网 时间:2024/06/08 18:46

概述

mysql数据库的导入,有三种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

一,数据库备份

一共三种方式。
第一种:mysqldump命令
命令格式

mysqldump -u用户名 -p 数据库名 > 保存名.sql

范例:

导出数据库data到example.sql文件mysqldump -uroot -p dataname > /data/example.sql

提示输入密码时,输入该数据库用户名的密码。

第二种: 指定导出备份编码

mysqldump -u root -p密码 --default-character-set=数据编码 数据库名称> data.sql 

案例:

mysqldump -u root -p123456 --default-character-set=utf8 example > example.sql

将导出的SQL文件保存下来。

二,恢复数据库

一共二种方式。

第一种:
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p

mysql>use databasename;

1、确定数据库默认编码,比如编码为gbk,将读入途径编码同样设为gbk,命令为:

set names gbk;(导入数据出现乱码的时候用平常不用)

2、然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source /data/example.sql

第二种;定义还原编码类型
定义编码导入

mysql -u root -p --default-character-set=utf8 -f dataname < /data/example.sql

如果乱码使用二进导入

mysql -u root -p --default-character-set=binary -f dataname < /data/example.sql

注:备份最好两个方法都做
如果导入导出出现乱码请使用下面方便备份还原试试(导出和导入都使用二进方式

导出

mysqldump -u root -p --default-character-set=binary dataname > /data/example.sql 

导入

mysql -u root -p --default-character-set=binary -f dataname < /data/example.sql