mysql数据库备份与恢复各种方法总结
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-07 15:57:53 浏览: 评论:0
本来给大家总结现在网络上常用的几种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; //phpfensi.com
- }
- 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;
- }
- ?>
Tags: mysql备份 mysql恢复
相关文章
- ·MySQL数据库备份与还原方法总结(2014-09-23)
- ·简单的大数据量MySQL备份的PHP脚本(2014-09-23)
- ·mysql 导出单表数据/备份单表数据语句(2014-09-23)
- ·windows万能mysql数据库备份脚本(2014-09-27)
- ·mysql中mysqlhotcopy备份使用说明(2014-09-27)
- ·mysql数据库备份并加密的备份sql脚本(2014-09-28)
- ·windows下mysql每天定时备份数据库几种方法(2014-09-28)
- ·Linux自动备份MySQL数据库脚本代码(2014-09-28)
- ·linux mysql 数据库自动备份的设置方法(2014-09-28)
- ·几种MySQL备份常用方法整理(2014-09-28)
- ·MySQL导出备份(数据导出)方法详解(2014-09-29)
- ·Mysql mysqldump命令备份所有数据库(2014-10-02)
- ·Mysql备份压缩及恢复数据库方法总结(2014-10-04)
- ·mysql异地数据库备份实例代码(2014-10-05)
- ·mysql中mysqlhotcopy备份数据库总结(2014-10-08)
- ·mysql数据备份方法总结(2014-10-09)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)