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

作者:CODETC 时间:2023-09-04 14:55:11 

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是需要还原的数据库文件,文件路径为绝对路径。

来源:http://www.codetc.com/article-275-1.html

标签:php,mysql,数据库备份
0
投稿

猜你喜欢

  • Python如何避免文件同名产生覆盖

    2021-02-05 21:16:34
  • python神经网络学习利用PyTorch进行回归运算

    2023-02-24 13:30:47
  • Go语言atomic.Value如何不加锁保证数据线程安全?

    2024-04-25 13:16:52
  • ASP教程:制作登陆验证页面程序

    2008-10-23 15:00:00
  • python笔记之mean()函数实现求取均值的功能代码

    2022-01-12 07:06:47
  • 图标设计常犯的10种错误

    2008-03-06 13:40:00
  • python安装pil库方法及代码

    2021-10-22 16:55:24
  • 实例讲解Python中SocketServer模块处理网络请求的用法

    2021-04-16 13:25:27
  • ASP进阶教程Ⅶ:留言簿设置密码验证

    2008-10-13 09:02:00
  • python中wordcloud安装的方法小结

    2022-07-11 04:29:44
  • javascript限制用户只能输汉字中文的方法

    2023-07-02 05:30:29
  • MYSQL 表的全面总结

    2024-01-13 12:01:25
  • python用selenium打开chrome浏览器保持登录方式

    2022-02-19 10:28:08
  • asp正则表达式详细说明

    2008-10-23 16:23:00
  • Python装饰器(decorator)定义与用法详解

    2022-07-21 03:11:25
  • 关于浏览器地址栏的小图标favicon.ico制作

    2010-03-07 15:57:00
  • python利用后缀表达式实现计算器功能

    2022-08-26 03:25:35
  • python抖音表白程序源代码

    2021-01-29 17:12:38
  • Python实现验证码识别

    2022-01-04 09:51:04
  • Python实现合并同一个文件夹下所有PDF文件的方法示例

    2021-01-21 23:08:18
  • asp之家 网络编程 m.aspxhome.com