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 strtok()函数的优点分析
Mar 02 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
Laravel框架数据库迁移操作实例详解
Apr 06 PHP
PHP中的异常处理机制深入讲解
Nov 10 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/05/15 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
python线程池的实现实例
2013/11/18 Python
python读写json文件的简单实现
2017/04/11 Python
用python与文件进行交互的方法
2018/03/01 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
社区端午节活动方案
2014/01/28 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
经理聘任证明
2015/03/02 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL