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;
      }
?>

时间: 2024-12-09 01:01:55

mysql数据库备份与恢复各种方法总结的相关文章

查看mysql数据库的版本方法

查看mysql数据库的版本方法 查看mysql数据库版本方法总结 当你接手某个mysql数据库管理时,首先你需要查看维护的mysql数据库版本:当开发人员问你mysql数据库版本时,而恰好你又遗忘了,那么此时也需要去查看mysql数据库的版本...............下文总结一下Linux平台下查看mysql数据库的方法.个人觉得总结的比较全面了.   方法1:登录数据库时,你可以看到对应mysql数据库的版本信息,如下所示:   [root@DB-Server ~]# mysql -u r

mysql-iis日志导入Mysql数据库快速实现方法

问题描述 iis日志导入Mysql数据库快速实现方法 做一个Iis日志统计的软件,打算通过mysql实现,刚刚开始自学,现在要将iis日志导入到mysql数据库中,目前了解到的方法是用load data infile语句,但发现速度不够理想 100M文件需要30S左右.因为知识有限不知道还有什么更好的办法,希望懂的前辈们,能多指点一下,谢谢

php计算整个mysql数据库大小的方法_php技巧

本文实例讲述了php计算整个mysql数据库大小的方法.分享给大家供大家参考.具体如下: 这里用MB,KB或者GB的格式返回计算结果. function CalcFullDatabaseSize($database, $db) { $tables = mysql_list_tables($database, $db); if (!$tables) { return -1; } $table_count = mysql_num_rows($tables); $size = 0; for ($i=0

mysql数据库程序优化方法

mysql数据库程序优化方法 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了.同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字

linux中修改AMH系统面板默认MYSQL数据库存储路径方法

正常情况下我们的VPS主机环境如果按照类似AMH之类的面板,如果有数据盘的时候网站项目会独立用数据盘存储,而系统以及面板环境数据库存储会在系统盘中,因为也不会占据太大的硬盘空间.上午的时候,有一个朋友需要老左帮助解决AMH面板的数据库也放到数据盘中,担心哪天系统数据或者缓存导致系统盘占满问题. 修改AMH系统面板默认MYSQL数据库存储路径方法 解决修改AMH系统面板默认MYSQL数据库存储路径方法 第一.复制AMH面板数据库到挂载目录文件夹 这里老左看到挂载的数据盘是HOME目录下(挂载AMH

MySQL数据库备份与恢复方法_Mysql

常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法: (1)备份数据库文件 MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件.在Linux下数据库文件的存放目录一般为/var/lib/mysql.在Windows下这个目录视MySQL的安装路径而定,DiaHosting的技术员一般为客户安装在D:serversoftmysql下.如,有一个名为bbs的数据库,那么bbs的数据库文件会存放在/var/lib/mysql/bbs(linux)或者D:serversoft

Linux自动备份MySQL数据库的实用方法

MySQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据. ◆1.创建备份文件夹 #cd /www #makedir backup ◆2.编写运行脚本 #vi autobackup 写入以下内容: filename=`date +%Y%m%d` mysql_bin_dir/mysqldump –opt dataname -u user -ppassword gzip > /www/mysqlbackup/name$filename.gz 保存退

一个简便的MySql数据库备份的方法

mysql|备份|数据|数据库 使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好. 一.数据备份捷径 因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧. 目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中 试验环境: 操作系统:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0 在hostA中安装mysql数据库并建立

优化MySQL数据库性能的方法

    本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法. 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了.同样的,如果可以的话,