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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
基于wordpress主题制作的具体实现步骤
May 10 PHP
深入PHP异步执行的详解
Jun 03 PHP
php调用C代码的实现方法
Mar 11 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
php表单处理操作
Nov 16 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将数据导入到Foxmail的实现代码
2010/09/05 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
python如何让类支持比较运算
2018/03/20 Python
python实现人民币大写转换
2018/06/20 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
python斐波那契数列的计算方法
2018/09/27 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
大专生简历的自我评价
2013/11/26 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
招商专员岗位职责
2014/02/08 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
党支部考察意见范文
2015/06/02 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
清明扫墓感想
2015/08/11 职场文书
《假如》教学反思
2016/02/17 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android