百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql数据库备份与恢复各种方法总结
分享文章到:

mysql数据库备份与恢复各种方法总结

发布时间:01/15 来源: 浏览: 关键词:
本来给大家总结现在网络上常用的几种mysql数据库备份与恢复的命令与方法,有需要学习备份mysql数据库的朋友可进入详细参考。

方法一,直接打包mysql数据库下的data目录中你要备份的数据库名字的目录,然后恢复也可以直接替换了

方法二,利用xcopy定时备份了,代码如下

把下面代码保存.bat文件

 代码如下

@echo off
echo 执行备份任务
echo 正在停止数据库…
echo 正在停止网站数据库…
net stop MySQL
echo 执行备份数据库
xcopy "D:/MySQL/data/*.*" D:/mysqlbak/webbak%date:~0,10%/ /e /y /c
net start MySQL
echo 正在启动网站数据库…
echo 退出备份任务
echo .
exit


另存为db_back.bat。该bat文件的意思是先停止mysql服务,然后使用xcopy命令,将源数据库所在文件夹整个复制到D:/db_backup下,并且以当天日期命名该文件。

我们在cmd下测试一下这个bat能否运行。"运行"->cmd,输入cd c:/定位到bat文件所在目录。输入back_job.bat.结果如下

方法三,利用phpmyadmin备份还原,这里我就不介绍了。


方法四,利用mysqldump 命令进行备份

我通常使用以下 SQL 来备份 MyISAM 表:

 代码如下
/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false
--triggers -R --hex-blob -x db_name > db_name.sql

使用以下 SQL 来备份 Innodb 表:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false
--triggers -R --hex-blob --single-transaction db_name > db_name.sql

1.2 还原
用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。

•直接用 mysql 客户端
例如:

 代码如下

/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql

•用 SOURCE 语法
其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:

SOURCE /tmp/db_name.sql;
这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件


备份MySQL数据库的命令

 代码如下

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

 代码如下

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

 代码如下

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表

 代码如下

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

 代码如下

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

 代码如下

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

 代码如下

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

 代码如下

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

 代码如下

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

 代码如下

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename


利用php 来备份mysql数据库

 代码如下

<?php
      mysql_connect('localhost', 'test', '123456');
      mysql_select_db('test');
      if(copy_table('products', 'products_bak')) {
    echo "success/n";
      }
      else {
    echo "failure/n";
      }

      function copy_table($from, $to) {
    if(table_exists($to)) {
      $success = false;
    }
    else {
      mysql_query("CREATE TABLE $to LIKE $from");
      mysql_query("INSERT INTO $to SELECT * FROM $from");
      $success = true;
        }
        return $success;
      }

      function table_exists($tablename, $database = false) {
    if(!$database) {
      $res = mysql_query("SELECT DATABASE()");
          $database = mysql_result($res, 0);
        }
        $res = mysql_query("
           SELECT COUNT(*) AS count
           FROM information_schema.tables
           WHERE table_schema = '$database'
           AND table_name = '$tablename'
        ");
        return mysql_result($res, 0) == 1;
      }
?>

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板