zoukankan      html  css  js  c++  java
  • MySQL数据库自带备份与恢复工具:MySQLdump.exe与mysql.exe

    数据库的备份工作是保护数据库正常运行的关键,以下的文章主要讲述的是MySQL数据库备份的一些小妙招,我们大家都知道使用MySQL dump备份数据库的用户所需要的权限相对而言还是比较小的,只需要select与lock table的权限就足够了。
    所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏。
    MySQLdump是备份MySQL数据库的一种好工具。它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以结合计划任务实现定时远程备份数据库。
    在备份数据库之前我们要做足准备功夫,首先创建了执行备份操作的数据库用户——root,密码为:hust。其次,确定我们要备份哪个数据库,放在哪里。然后,确定数据库的备份文件要放到哪里。
    假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为db_test的数据库,并把备份文件放到D:ak的文件夹中。于是我们可以用以下的方法执行备份恢复操作:

    1.数据的备份

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

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

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

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

    紐,在变量 PATH 的变量值文本框中添加 “D:AppServMySQLin” ( 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:akakcup.sql 

    在这段命令中:

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

    -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>";

    ?>













  • 相关阅读:
    SQLAlchemy(2) -- SQLAlchemy的安装
    SQLAlchemy(1) -- Python的SQLAlchemy和ORM
    http-proxy-middleware及express实现反向代理
    Vue项目中的http请求统一管理
    vue.js中如何使用scss
    Vue 相关开源项目库汇总
    Vue UI组件库
    route按需加载的3种方式:vue异步组件、es提案的import()、webpack的require.ensure()
    Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流
    vuejs 和 element 搭建的一个后台管理界面
  • 原文地址:https://www.cnblogs.com/star91/p/4764428.html
Copyright © 2011-2022 走看看