MySQL 数据备份和恢复

接触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

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

不明白。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值