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解析html的实现代码
Aug 08 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
php微信开发之关键词回复功能
Jun 13 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 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开发中的中文编码问题
2013/08/08 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
Python类继承和多态原理解析
2020/02/05 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
本科毕业生专业自荐书范文
2014/02/05 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
合伙经营协议书范本
2014/04/18 职场文书
个人整改措施书面材料
2014/10/24 职场文书
写给领导的感谢信
2015/01/22 职场文书
2015年财务部工作总结
2015/04/10 职场文书