MySQL 数据备份和恢复

来源:互联网 发布:吉祥抽奖软件 编辑:程序博客网 时间:2024/05/16 23:48

接触Mysql到今天,还没有一个星期,感觉相比较mssql,mysql很多地方很不方便。今天学习备份和恢复,遇到最麻烦的一个问题,就是编码,到现在还不明白为什么,反正用mysql这几天,让我很吐血,但还是不得不用,下面正题。


数据备份

cmd

>cd c:\Program Files\MySQL\MySQL Server 5.0\bin  --有的server 2003 系统这命令没反应,是 cd /d

进入bin目录后,开始备份

>mysqldump -uroot -p1 databasename>d:\\d.sql   -- -p1是参数-p密码1,这里我试过,如果-p和密码1中间加空格的,会把1识别为数据库,所以一般是跟在一起的。

执行成功,是不会有任何提示的,只有到保存的位置看是否已有文件。

打开d.sql,看到里面有表和视图,但不会有存储过程。


数据还原

还原前,有二件事要做,1、备份的文件中,没有use databasename ,也就是说,不知道你要还原到那个数据库去。所以要打开d.sql,并在里面最前加 use databasename,

另一个就是删除d.sql内容最前面的这些(接触时间过短,不明白为什么),如果不删除,在还原中,会提示出错。

-- MySQL dump 10.11
--
-- Host: localhost    Database: etm_one
-- ------------------------------------------------------
-- Server version 5.0.90-community-nt


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


在这里遇到一个非常非常怪的问题,差我吐血。

就是如果我先删除上面的代码,再写use databasename,用source还原,use会被识别为乱码(就是一个顺序的问题,还是不明白为什么) 


>cd c:\Program Files\MySQL\MySQL Server 5.0\bin

>mysql -uroot -p1

>source d:\\d.sql   --或 source d:d.sql

Query OK, 0 rows affected,  1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

....

还原成功


用mysql,很让人郁闷,可能是用久了mssql,很多地方不习惯。


2012-05-23

刚再试了几遍,竟然没有后面那个问题了。。。。。。。。。。。

不明白。


原创粉丝点击