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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
php htmlspecialchars加强版
Feb 16 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
php格式输出文件var_export函数实例
Nov 15 PHP
yii分页组件用法实例分析
Dec 28 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
python版本的读写锁操作方法
2016/04/25 Python
Python注释详解
2016/06/01 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
企业文化演讲稿
2014/05/20 职场文书
体育专业求职信
2014/07/16 职场文书
水电工岗位职责
2015/02/14 职场文书
企业工会工作总结2015
2015/05/13 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书