数据库的备份工作是保护数据库正常运行的关键,以下的文章主要讲述的是MySQL数据库备份的一些小妙招,我们大家都知道使用MySQL dump备份数据库的用户所需要的权限相对而言还是比较小的,只需要select与lock table的权限就足够了。

所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏。

MySQLdump是备份MySQL数据库的一种好工具。它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以结合计划任务实现定时远程备份数据库。

在备份数据库之前我们要做足准备功夫,首先创建了执行备份操作的数据库用户——root,密码为:hust。其次,确定我们要备份哪个数据库,放在哪里。然后,确定数据库的备份文件要放到哪里。

假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为db_test的数据库,并把备份文件放到D:\bak\的文件夹中。于是我们可以用以下的方法执行备份恢复操作:

1.数据的备份

在命令行模式下完成对数据的备份,使用的是
MYSQLDUMP 命令。通过该命令可以将数据以文 本文件的形式存储到指定的文件夹下。

说明:要在命令行模式下操作
MySQL 数据库, 必须要对电脑的环境变量进行设置 ,右击 “我的电脑” ,

在弹 出的快捷菜单 中选择 “ 属性”
命令,在弹出的对话框 中选择 “ 高级” 选项卡,然后在新弹出的

对话框 中单击 “环境变量” 按钮,在用 户变量的文本 框中找到变量 PATH 并选中,单击 “
编辑”按

紐,在变量 PATH 的变量值文本框中添加
“D:\AppServ\MySQL\bin” ( MySQL 数据库中

bin 文件 夹的安装路径 ),然 后单击 “确定
”按紐。其中添加的 bin 文件夹的路径根据自己安装 MySQL

数椐库的位置而定,
(如果不想配置”环境变量“,则要定位到MySQLdump.exe所在的目录打开命令提示符,只要在所在目录按住shift键右键即可找到”在此处打开命令提示符“)

注意 :

如果使用集成化的安装包来配置 PHP 的开发坏境,那
么就不需要进行上述的配置操作, 因为

集成化安装包 已经自行配置 完成。但是,如果是独立安装的
MySQL, 那 么就必须进行上述的 配置,

才能在命令行模式下操作 MySQL
数据库。

通过 MYSQLDUMP
命令备份整个数据库的操作步骤如下:

(1)我们可以使用windows自带的命令提示符(调用命令提示符的方法有多种,最常用的就是点击开始菜单,选择“运行”,输入cmd的命令就可以启动了),在命令提示符中输入以下命令:

MySQLdump -uroot
-phust -h 192.168.1.2 db_test >
D:\bak\bakcup.sql

在这段命令中:

MySQLdump 是myqldump的程序名了;(这里我用的是集成开发环境D:\AppServ\MySQL\bin目录下)

-u 是数据库的用户名,后面紧跟着用户名root;

-p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;

-h 是数据库的地址,如果没有此项表明是备份本地的数据库;

db_test 要备份的数据库名称;

backup.sql  备份之后的文件,后缀也可以是.txt

>
表明该MySQL数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。

一旦执行该命令后,MySQLdump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。

如果把这个命令写成批处理文件,通过windows的计划任务可以实现定时备份数据。

在windows下用MySQLdump备份数据库,因为没有gzip的压缩引擎,因此不能对备份数据库进行压缩,因此如果备份文件多了要经常清理过期的MySQL数据库备份文件。

(2)在PHP中备份数据库

前面介绍的是从windows的”命令提示符“备份数据库,那么在PHP中如何实现呢?

在PHP中备份数据库,主要通过exec( )函数执行系统命令

exec()函数的格式为:

string
exec(string command)

参数command为要执行的系统命令。这里为备分数据表的命令,下面举例说说明:

<?php

$filename =$_POST[filename];//这里是用户输入的数据库的备份名

 $mysqlstr = "mysqldump -uroot -phust db_wms >sql/".$_POST[filename];//这里使用的是相对路径,(我将mysqldump.exe 复制到了本php文件路径下)
//这里未指定主机,默认本机
 //$mysqlstr = "mysqldump -uroot -phust db_wms >D:/AppServ/www/wms/system/sql/".$_POST[filename];

 exec($mysqlstr);//
 echo "<script>alert('数据备份成功!');window.location='../desk.php';</script>";
?>

2.数据的恢复

(1)使用windows自带的命令提示符

用的是 MySQL 命令。其命令格式如下:

mysql -uroot -proot db_database <F:\db_database.sql "

其中 mysq丨 是使用的命令, -u 后的 root 代表用户名 ,-p 后的 root 代表密码,db

database 代表数据库名 (或 表名), “<” 号后面的 “F:\db_database.txt” 是数据库备份文件存储的位置。

下面介绍实现数据库恢复的操作步骤:

(1)选择 “ 开始”/ “ 运行”命令。

(2)在弹出的对话框中输入 “cmd” ,单击 “ 确定”按钮,进入命令行模式。

( 3 ) 在命令行模式中直接输入 “ mysql -uroot-proot db_database<F:\db_database.txt ”, 然后"Enter"

(2)在PHP中恢复数据库

<?php


    $mysqlstr = "mysql -uroot -phust db_wms<sql/".$_POST[r_name];//$_POST[r_name]//为用户选择的用来恢复的文件名

    //echo $mysqlstr;

    exec($mysqlstr);

    echo "<script>alert('恢复成功');location='../desk.php'</script>";

?>


MySQL数据库自带备份与恢复工具:MySQLdump.exe与mysql.exe的更多相关文章

  1. mysql数据库备份及恢复命令mysqldump,source的用法

    还原一个数据库:mysql -h localhost -u root -p123456 www<c:/www.sql 备份一个数据库:mysqldump -h localhost -u root ...

  2. MySQL数据库的完全备份与恢复

    前言 在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果,正确的数据库操作是实际环境下不可缺少的. 一.数据库备份的分类 1.1 从物理与逻辑的角度,备份的分类 物理备份:对数 ...

  3. 基于Mybatis的Mysql数据库文档生成工具,支持生成docx(原创)

    今天不写android--也写写数据库相关的东西 -------------------- 今日老夫闲来无事,设计了一款数据库文档生成工具 眼下仅仅支持mysql 主要是生成docx的 下载链接:下载 ...

  4. CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

    CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...

  5. mysql逻辑备份与还原工具mysqldump

    (一)mysqldump介绍 mysqldump是MySQL自带的逻辑备份工具,类似于Oracle的expdp/impdp,mysqldump备份十分灵活,可以在以下级别对数据库进行备份: 实例下的所 ...

  6. Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)

    备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...

  7. mysql数据库中,通过mysqladmin工具,创建数据库

    需求描述: 今天接触到了mysqladmin工具,主要是一个客户端工具,用来管理mysql server的 可以通过mysqladmin直接创建数据库,而不需要登录到mysql控制台中,在此记录下. ...

  8. mysql数据库自带数据库介绍

    show databases:查看mysql自带数据库有information_schema,mysql, performance_schema, test information_schema数据库 ...

  9. 10款免费的MySQL数据库图形化管理工具

    绝大多数的关系数据库都明显不同于MS Access,它们都有两个截然不同的部分:后端作为数据仓库,前端作为用于数据组件通信的用户界面.这种设计非常巧妙,它并行处理两层编程模型,将数据 层从用户界面中分 ...

随机推荐

  1. espcms自定义表单邮件字段

    /include/inc_replace_mailtemplates.php中增加一行就可以了. 如:$replacemail['mailform'][] = array(name => '职位 ...

  2. 【GoLang】GoLang 错误处理 -- 官方推荐方式 示例

    最严谨的方式,Always检查error,并做相应的处理 项目结构: 代码: common.go: package common import ( "github.com/pkg/error ...

  3. Ubuntu下安装eclipse

    一.eclipse安装环境JDK的安装 1.下载JDK 从官网下载jdk8 jdk-8u5-linux-x64.tar.gz 2.解压$ tar -zxvf jdk-8u5-linux-x64.tar ...

  4. SharePoint2010母版页想要的定制

    查找<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle"用style="disp ...

  5. CMake入门以及学习笔记

    使用cef3替代chromium内核开发产品过程中,第一次接触到系统构建,使用了最常见的CMake.CMake虽然在构建系统中用的比较多,但是使用到的程序员还是很少的.现在在国内能找到的相关资料和博客 ...

  6. 解读Unity中的CG编写Shader系列二

    转自 http://www.itnose.net/detail/6095974.html 上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问 ...

  7. iOS 关于AFNetworking ssl 待完成

    先普及下基本知识,都是从网上搜到的,感谢原作者的辛勤付出! 原文链接 http://m.blog.csdn.net/blog/bytxl/8586830 x509是数字证书的规范,P7和P12是两种封 ...

  8. 如何让两个 并列的div高度相等

    哪个div Height值大,就将其值赋给Height值小的div,从而使2个div高度始终保持一致. function $(id){ return document.getElementById(i ...

  9. linux权限不够,sh不能用

    linux下权限不够 chmod +x 脚本命令 ./脚本命令  即可... sh startup.sh启动tomcat,出现 This file is needed to run this prog ...

  10. 手风琴特效 transition

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...