首页 > 编程知识 正文

mysql数据库备份php(Mysql数据库备份命令)

时间:2023-12-24 12:05:53 阅读:321176 作者:IHON

本文目录一览:

PHP+MYSQL的数据库如何备份和还原?

有很多软件可以使用,比如phpmyadmin,sqlyog等等

下载一个phpmyadmin并且配置好(网上有如何配置),其中就有备份还原数据库的图标,很简单

补充:----------------------

对啊,点导出,然后执行就可以了啊

php备份恢复MYSQL数据库

1、把数据库sql文件查找 CHARACTER

替换成 CHARACTER SET utf8 或 CHARACTER = utf8

2、到phpmyadmin 创建一个新的数据库的时候应该选 整理 latin1_swedish_ci

3、到phpmyadmin 进入新建的数据库,导入数据库文件

4、用UltraEdit转换所有ANSI格式的php源码文件为UTF-8格式:File -- Conversions -- ASCII to UTF-8

5、在php源码文件中必须加入:

在head后加入

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

6、在连接数据DB的文件中找到类似一下代码

$host="localhost"; $DBname="aa"; //数据库名字$user= "root"; //用户名$passwd = ""; //密码$link = mysql_connect($host,$user,$passwd) or die ("Fail");

$db = mysql_select_db($DBname, $link) or die ("Fail"); //连接

// 要在真正query DB取出资料前,必须加入下面3行mysql_query才可以:

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER_SET_CLIENT=utf8");

mysql_query("SET CHARACTER_SET_RESULTS=utf8");

7、在php源码中, 如有应用htmlentities和htmlspecialchars时需要注意:

要似如下格式:

$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");

$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");

如有应用addslashes()或mysql_real_escape_string()记得用以下:

$chars = stripslashes($chars);

另外如果需要的话还可设置:

1、php.ini 设定php中的语系为 (记得restart)

default_charset = "utf-8"

2、my.ini 设定MySQL中的语系为 (记得restart)

[mysqld]

init_connect='SET NAMES utf8'

default-character-set=utf8

[client]

default-character-set = utf8

本人刚接触PHP+MySQL,才疏学浅,希望能给有需要的得到帮助。

请大家指点,谢谢!

php实现mysql数据库分表分段备份

分卷导出思路:统计sql语句变量的长度,按1个字符当成1

字节比较,如果大于设定分卷大小,则写入一个sql文件(我也不知道这样统计是否稳当,这也是借鉴其他的人的)。

分卷导入思路:按行读取sql文件,将每一行当作完整的sql语句存到数组再循环执行插入数据库就可以了,但是在创建表语句分了多行,这个需要单独处理(就这个花了我好长时间的);

?php

//宋正河

转载请注明出处

set_time_limit(0);

header('content-type:text/html;charset=utf-8');

mysql_connect('localhost','root','root');

mysql_select_db('test');

$table_array=get_tables('test');

mysql_query('set

names

utf8');

$filesize=1024*1024*4;

$start=$_GET['start']?$_GET['start']:0;

$part=$_GET['part']?$_GET['part']:'1';

$table_index=$_GET['table_index']?$_GET['table_index']:'0';

$table=$table_array[$table_index];

$num=200000000;//这个数要足够大,可以是总记录数

$backupdata='';

if($start=='0'){

$query="SHOW

CREATE

TABLE

`{$table}`";

$result

=

mysql_query($query);

$row

=

mysql_fetch_row($result);

$backupdata

.=

"DROP

TABLE

IF

EXISTS

`{$table}`;n"

.

$row[1]

.

";nn";

}

$limit=($start=='0')?'':"

limit

$start,$num

";

$query="select

*

from

`{$table}`

$limit

";

$result=mysql_query($query);

$numfields

=

mysql_num_fields($result);

//统计字段数

while($row=mysql_fetch_row($result)){

$comma

=

'';

//存储逗号

$backupdata_tmp

=

"INSERT

INTO

`{$table}`

VALUES

(";

for($i=0;

$i$numfields;

$i++){

$backupdata_tmp

.=

$comma

.

"'"

.

mysql_escape_string($row[$i])

.

"'";

$comma

=

',';

}

$backupdata_tmp

.=

");n";

if(strlen($backupdata)+strlen($backupdata_tmp)

$filesize){

//写入文件并跳转

$file='data/'.$table.'-'.$part.'.sql';

file_put_contents($file,$backupdata);

echo

$file.'

备份完成,程序继续进行!';

$part++;

//分段

//表名

//起点

//跳转

sleep(3);

echo

"scriptlocation.href='?start={$start}table_index={$table_index}part={$part}';/script";

exit;

}

$backupdata.=$backupdata_tmp;

$start++;

}

if($backupdata){

$file='data/'.$table.'-'.$part.'.sql';

file_put_contents($file,$backupdata);

}

echo

$table.'备份完成!br

/';

sleep(2);

$table_index++;

if($table_array[$table_index]){

echo

"scriptlocation.href='?table_index={$table_index}';/script";

exit;

}else{

echo

'恭喜你,数据库备份完毕!';

}

function

get_tables($db){

$tq

=

mysql_list_tables($db);

while($tr

=

mysql_fetch_row($tq)){

$arrtb[]

=

$tr[0];

}

return

$arrtb;

}

?

以上所述就是本文的全部内容了,希望大家能够喜欢。

关于PHP+Mysql数据库自动备份的问题

先说代码,我看了一下,代码没什么问题,至于你说的不备份,原因可能如下:

查询无结果,测试办法是在最外层的那个while语句结束后输出查询语句,即:

while ($t = mysql_fetch_array($q1))

{

    //里面的代码

}

echo $mysql;//在这里输出查询结果,如果结果正常,则说明查询有结果

$filename = "autobackup.sql"; //存放路径,默认存放到项目最外层

然后就是另一个问题了,目标文件不可写,你可以参考下面这样的代码

$filename = "autobackup.sql"; //存放路径,默认存放到项目最外层

if(!file_exists($filename) || is_writable($filename))//如果文件不存在或可写

{

    $fp = fopen($filename, 'w');//打开或创建可写文件

    $mysql=str_replace("','','');","',null,null);",$mysql);

    fputs($fp, $mysql);//写入

    fclose($fp);

}

else

{

    echo "文件 $filename 不存在或不可写";

}

如果尝试发现仍有问题,请再追问

如何用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("mysqldump -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; 

?

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("mysqldump -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();

}

?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。