当前位置:首页 » 编程语言 » php备份数据库

php备份数据库

发布时间: 2023-05-11 23:48:48

㈠ 如何用php来实现Mysql备份

备份数据库并下载到本地【db_backup.php】

<?php
//设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
//所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
//获取当前页面文件路径,SQL文件就导出到此文件夹
$tmpFile=(dirname(__FILE__))."\".$filename;
//用MySQLDump命令导出数据库
exec("mysqlmp-u$cfg_dbuser-p$cfg_dbpwd--default-character-set=utf8$cfg_dbname>".$tmpFile);
$file=fopen($tmpFile,"r");//打开文件
echofread($file,filesize($tmpFile));
fclose($file);
exit;
?>

㈡ 如何使用PHP自动备份数据库

使用mysqlmp函数

mysqlmp -u username -p dbname table1 table2 ... > BackupName.sql

  • dbname参数表示数据库的名称

  • table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

  • BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。

  • 备份数据库的主要过程:

  • 切换到对应的数据库;

  • 使用show create table tableName,获得表结构,写到文件中;

  • 然后查询所有的表数据,循环生成相对应sql语句,写到文件中;

  • 试运行生成的sql文件。

㈢ php mysql如何备份数据

我一般用二种方法:
1.SQL文件数据备份;
下载一个Navicat Premium,使用这个软件,正确连接并访问数据库,
点中你想要备份的数据库,按右键使用转存SQL文件,就会出现你要备份的提示框,保存即可;
若要导进则用运行SQL文件,非常方便的导入单个数侍腊据库的,但这种只适合于小数据量的数据链谈孝库(50万条以下);
2.底层备份,但这种备份要求安装是同一版本的mysql才适合,否则会出现未知错误;
直接找到mysql安装目录,找到data文件夹全部拷呗到你想备份的地方即可,还原就拷回来即可。适合大数据量的备份方法!

3.至于楼主硬要用PHP备份数据的话棚稿,你可以参考phpadmin和dedecms程序备份数据的方法,但这种执行效率很低的!

㈣ php,mysql数据库备份和还原的最理想方式,类似phpadmin的代码

一、备份数据库并下载到本地【db_backup.php】
复制代码 代码如下:
<?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqlmp -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>
二、还原数据库【db_restore.php】
复制代码 代码如下:
<form id="form1" name="form1" method="post" action="">
【数据库SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
<input id="submit" name="submit" type="submit" value="还原" />
</form>
<?php
// 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
require_once((dirname(__FILE__).'/../../include/config.php'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要导入的SQL文件名
$dbhost = $cfg_dbhost; //数据库主机名
$dbuser = $cfg_dbuser; //数据库用户名
$dbpass = $cfg_dbpwd; //数据库密码
$dbname = $cfg_dbname; //数据库名
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
echo "<p>正在清空数据库,请稍等....<br>";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空数据表【".$currow[0]."】成功!<br>";
}
echo "<br>恭喜你清理MYSQL成功<br>";
echo "正在执行导入数据库操作<br>";
// 导入数据库的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
echo "<br>导入完成!";
mysql_close();
}
?>

㈤ 知道了php数据库账号密码怎么备份

  • z-blog php数据库帐号密码保存在zb_users/c_option.php

php一般使用的mysql的数据库 如果没有密码的话 比较麻烦

要破解mysql的root密码 这是关键

参考:

如果是root密码:


方法一:

MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:

safe_mysqld --skip-grant-tables&

即可跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。

需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效


方法二:

可以进行如下的步骤重新设置MySQL的root密码:

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。

因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的

状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对

外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全

状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。

2.修改MySQL的登录设置:

# vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

例如:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip-name-resolve

skip-grant-tables

保存并且退出vi。

3.重新启动mysqld

# /etc/init.d/mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

4.登录并修改MySQL的root密码

# /usr/bin/mysql

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 3 to server version: 3.23.56

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> USE mysql ;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

mysql> flush privileges ;

Query OK, 0 rows affected (0.01 sec)

mysql> quit

Bye

5.将MySQL的登录设置修改回来

# vi /etc/my.cnf

将刚才在[mysqld]的段中加上的skip-grant-tables删除

保存并且退出vi。

6.重新启动mysqld

# /etc/init.d/mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

windows

1.以系统管理员身份登陆系统。

2.打开cmd—–net start 查看mysql是否启动。启动的话就停止net stop mysql.

3.我的mysql安装在d:usrlocalmysql4in下。

4.跳过权限检查启动mysql.

d:usrlocalmysql4inmysqld-nt –skip-grant-tables

5.重新打开cmd。进到d:usrlocalmysql4in下:

d:usrlocalmysql4inmysqladmin -uroot flush-privileges password “newpassword”

d:usrlocalmysql4inmysqladmin -u root -p shutdown 这句提示你重新输密码。

6.在cmd里net start mysql

7.搞定了。

2,MySQL4.1以上版本一种密码错误问题的解决方法

1 # SET PASSWORD FOR ’some_user’@’some_host’ = OLD_PASSWORD(‘newpwd’);

2 # FLUSH PRIVILEGES;

3,Mysql数据库修复

myisamchk -r -q d:mysqldatalatin1*

r代表修复

q代表快速

d:mysqldatalatin1*数据库里面 *代表里面的所有的文件


方法三:

如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。

1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。

kill `cat /mysql-data-directory/hostname.pid`

你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。

2. 使用`--skip-grant-tables' 参数来启动 mysqld。

3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。

(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)

4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。)


方法四:(一定要先备份)

1,重新在另一台电脑上安装相同版本的MySQL

2,删除忘记密码的电脑中MySQL安装目录中datamysql的全部内容(要先停止MySQL服务)

3,Copy新装的电脑上MySQL安装目录中datamysql的全部内容 to 刚刚删除的目录中

4,启动MySQL服务


这样就只有一个root用户了,密码为空……

㈥ 请问如何用php写一个类,备份所有的数据库呢

主要是个mysql mp操作,将数据库的数据完整导入到txt或者其他文件中就可以的,和php的类相关很小啊,就是函数和mysql操作写对了就好

㈦ php数据库备份还原失败~

php简单备份与还原MySql的方法具体如下:
一、备份:
<?php
header("content-Type:text/html;charset=utf-8");
//备份数据库
$host="localhost";
$user="root";//数据库账号
$password="123456";//数据库密码
$dbname="test";//数据库名称
//这里的账号、密码、名称都是从页面传过来的
if(!mysql_connect($host,$user,$password))//连接mysql数据库
{
echo'数据库连接失肢族迹败,请核对后再试';
exit;
}
if(!mysql_select_db($dbname))//是否存在该数据库
{
echo'不存在数据库:'.$dbname.',请核对后再试';
exit;
}
mysql_query("setnames'utf8'");
$mysql="setcharsetutf8; ";
$q1=mysql_query("showtables");
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query("showcreatetable`$table`");
$sql=mysql_fetch_array($q2);
$mysql.=$sql['CreateTable']."; ";
$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.="insertinto`$table`($keys)values($vals); ";
}
}
$filename="data/".$dbname.date('Ymjgi').".sql";//存放路径,默认存放到项目最外层
$fp=fopen($filename,'w');
fputs($fp,$mysql);
fclose($fp);
echo"数据备份成功";
?>
二、还原
<!--
author:果冻
qq:52091199
blog:http://wyg517.blog.163.com
-->
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<?php
$filename="test20101216923.sql";
$host="localhost";//主机名
$user="root";//MYSQL用户名
$password="123456";//密码
$dbname="穗氏test";//在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql_file="data/".$filename;//指定要恢复的MySQL备份文件路径,请自已修改此路径
restore($mysql_file);//执行MySQL恢复命令
functionrestore($fname)
{
if(file_exists($fname)){
$sql_value="";
$cg=0;
$sb=0;
$sqls=file($fname);
foreach($sqlsas$sql)
{
$sql_value.=$sql;
}
$a=explode("; ",$sql_value);//根据"; "条件对数据库中分条执行
$total=count($a)-1;
mysql_query("setnames'utf8'");
for($i=0;$i<$total;$i++)
{
mysql_query("setnames'utf8'");
//执行命令
if(mysql_query($a[$i]))
{
$cg+=1;
}
else
{
$sb+=1;
$sb_command[$sb]=$a[$i];
}
}
echo"操作完毕,共处理$total条命令,成功$cg条,失败$sb条";
//显示错误信息
if($sb>0)
{
echo"<hr><br><br>失败命令如下:<br>";
for($ii=1;$ii<=$sb;$ii++)
{
echo"<p><b>第".$ii."条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
}
}//-----------------------------------------------------------
}else{
echo"MySQL备份文件不存在,请检查文件路径是否正确!";
}
}
?>

㈧ phpcmsv9数据库备份在哪

phpcms可以使用多备份进行数据库备份
根据phpcms的运行环境,可以选择web模式备份或者客户端备份
虚拟主机环境可以选择web模式备份。登陆多备份官网后进入多备份控制面板,如果是首次登陆会有备份环境选项,选择保护服务器

选择web模式,然后选择数据库备份。如果非首次登陆直接选择添加,然后选择数据库备份

选择好以后添加数据库参数,选择备份频率,创建任务即可。
如果是服务器环境,首先进入多备份控制面板,首次登陆会有备份环境,然后选择保护服务器,下载对应的客户端。如果非首次登陆,直接下载左下角的客户端

下载好以后解压,打开dbfen.exe,然后登陆多备份账号,选择数据库备份,然后填入数据库参数,选择备份频率,即可开始备份

㈨ 用PHP怎么将MYSQL中的指定数据库备份下来

下载phpmyadmin ,他是用php语言开发的管理mysql的工具,有导出、导入等功能,解压复制一份到你的任意一个网站目录下,通过目录访问就可以了,

当然你也可以使用帝国的数据库备份工具,也很方便的,特别是对于数据库备份这个功能,比phpmyadmin还强大 予学PHP培训

㈩ php 代码备份数据库

<?php
/*
**************functiondb_bak()********************
*功能:备份指定的数据库中的指定表
*输入(按传入参数解释):$db_name要备份的数据库,$tb_array要备份的表,数组形式的,如果不是数组,将备份整个库。
$dir输出备份文件的目录,$filename备份文件名,$block_num指定分块大小(指一条insert语句包含几天数据)
*输出:备份的数据表的sql语句文件,可用于还原
*/
functiondb_bak($mylink,$dbname,$tab_array="",$dir,$filename,$block_num=20){
mysql_select_db($dbname,$mylink)ordb_error(mysql_error());
is_array($tab_array)or$tab_array=db_showtb($mylink,$dbname,true);//如果$tab_array不是数组,则取得整个库的表
if($dir){
if(!file_exists($dir)){
$flag=mkdir($dir);
if(!$flag)
return2;
}
}
//检查数据表是否存在
foreach($tab_arrayas$tab)
笑凳db_e_tab($mylink,$dbname,$tab)ordb_error($tab."is顷扮notexist!");
$fp=fopen($dir.$filename,"w");
foreach($tab_arrayas$tab){
fputs($fp,"DROPTABLEIFEXISTS".$tab."; ");
$tabdef_array=mysql_fetch_array(mysql_query("SHOWCREATETABLE".$tab,$mylink));
fputs($fp,str_replace(" ","",$tabdef_array["CreateTable"])."; ");
fputs($fp,"LOCKTABLES".$tab."WRITE; ");
$getvalue_result=mysql_query("select*from".$tab,$mylink);
if(mysql_num_rows($getvalue_result)){
$i=1;
雀升灶$p="";
$start_flag=true;
while($getvalue_array=mysql_fetch_row($getvalue_result)){
$values=join("','",array_map('db_data_check',$getvalue_array));
$start_flag&&fputs($fp,"insertinto".$tab."values");
if($i>$block_num){
fputs($fp,",('".$values."'); ");
$start_flag=true;
$i=0;
}else{
fputs($fp,$p."('".$values."')");
$start_flag=false;
$i++;
}
$p=$start_flag?"":",";
}
$start_flagorfputs($fp,"; ");
}
fputs($fp,"UNLOCKTABLES; ");
}
fclose($fp);
}
/*
**************functiondb_in()********************
*功能:还原备份函数db_bak生成的数据库文件
*输入(按传入参数解释):$db_name要备份的数据库,$filename要还原的数据库文件
*输出:将数据还原到数据库
*原理:将文件分割成一个数组,然后逐条将数据导入数据库
*警告:执行该函数会删除原来的数据表
*/
functiondb_in($mylink,$dbname,$filename){
if(!file_exists($filename)){
return0;
}
db_e_db($mylink,$dbname)or(mysql_query("createdatabase".$dbname,$mylink)ordb_error(mysql_error()));
mysql_select_db($dbname,$mylink);
$sql_array=file($filename);
foreach($sql_arrayas$sql){
mysql_query(trim($sql),$mylink)ordb_error(mysql_error());
}
}
?>
//我自己写的。可以参考哈

热点内容
服务器如何不设置密码直接进入 发布:2025-07-18 14:48:23 浏览:380
eclipse设置增量编译 发布:2025-07-18 14:43:24 浏览:66
访问virtualbox 发布:2025-07-18 14:43:19 浏览:67
怎么找回建行登录密码 发布:2025-07-18 14:39:38 浏览:348
如何让安卓变得像苹果一样快 发布:2025-07-18 14:38:05 浏览:216
台安源码 发布:2025-07-18 14:35:32 浏览:601
下载种子怎么是php 发布:2025-07-18 14:35:00 浏览:5
linuxtimet 发布:2025-07-18 14:34:46 浏览:299
轻客有哪些安全配置 发布:2025-07-18 14:09:22 浏览:409
sql按月份分组 发布:2025-07-18 13:44:01 浏览:598