PHP后台备份MySQL数据库的源码实例


Posted in PHP onMarch 18, 2019

PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对于一些不便自己写shell脚本备份的VPS来说,就不用使用 FTP 或者使用 mysql 的管理工具进行 mysql 数据库备份下载,非常方便。

下面是一个php数据库备份的源代码,大家也可以根据自己的需求进行修改。

<?php 
// 备份数据库
$host = "localhost";
$user = "root"; //数据库账号
$password = ""; //数据库密码
$dbname = "mysql"; //数据库名称
// 这里的账号、密码、名称都是从页面传过来的
if (!mysql_connect($host, $user, $password)) // 连接mysql数据库
{
 echo '数据库连接失败,请核对后再试';
  exit;
} 
if (!mysql_select_db($dbname)) // 是否存在该数据库
{
 echo '不存在数据库:' . $dbname . ',请核对后再试';
  exit;
} 
mysql_query("set names 'utf8'");
$mysql = "set charset utf8;\r\n";
$q1 = mysql_query("show tables");
while ($t = mysql_fetch_array($q1))
{
  $table = $t[0];
  $q2 = mysql_query("show create table `$table`");
  $sql = mysql_fetch_array($q2);
  $mysql .= $sql['Create Table'] . ";\r\n";
  $q3 = mysql_query("select * from `$table`");
  while ($data = mysql_fetch_assoc($q3))
  {
    $keys = array_keys($data);
    $keys = array_map('addslashes', $keys);
    $keys = join('`,`', $keys);
    $keys = "`" . $keys . "`";
    $vals = array_values($data);
    $vals = array_map('addslashes', $vals);
    $vals = join("','", $vals);
    $vals = "'" . $vals . "'";
    $mysql .= "insert into `$table`($keys) values($vals);\r\n";
  } 
} 
$filename = $dbname . date('Ymjgi') . ".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename, 'w');
fputs($fp, $mysql);
fclose($fp);
echo "数据备份成功";
?>

PHP执行Mysql数据库的备份和还原

使用mysqldump命令备份

mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。

mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。

mysqldump基本语法:

mysqldump -u username -p password dbname table1 table2 ...-> BackupName.sql
  • username为数据库用户名;
  • password为数据库密码
  • dbname参数表示数据库的名称;
  • table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
  • BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
$exec="D:/phpstudy/mysql/bin/mysqldump -u".$db_user." -p".$db_pwd." ".$db_name." > ".$name;
exec($exec);
//前面要设置mysql执行文件的路径。

注意:这里的-p后面的password不要有空格,否则可能只会生成空的sql文件,后面$name是生成文件路径及名称。

简单的备份数据库就完成了。

还原使用mysqldump命令备份的数据库的语法

mysql -u root -p password dbname < backup.sql

参数跟备份时一样,backup.sql是需要还原的数据库文件,文件路径为绝对路径。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
php获取网站百度快照日期的方法
Jul 29 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
Yii框架应用组件用法实例分析
May 15 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 #PHP
php+ajax 文件上传代码实例
Mar 18 #PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 #PHP
详解php中curl返回false的解决办法
Mar 18 #PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 #PHP
PHP自动生成缩略图函数的源码示例
Mar 18 #PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 #PHP
You might like
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP 中文乱码解决办法总结分析
2009/07/30 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
javascript[js]获取url参数的代码
2007/10/17 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
Python简单日志处理类分享
2015/02/14 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
python书籍信息爬虫实例
2018/03/19 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
2015年元旦主持词结束语
2014/12/14 职场文书
升学宴答谢词
2015/01/05 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android