PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对于一些不便自己写shell脚本备份的VPS来说,就不用使用 FTP 或者使用 mysql 的管理工具进行 mysql 数据库备份下载,非常方便。
下面是一个php数据库备份的源代码,大家也可以根据自己的需求进行修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?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基本语法:
1
|
mysqldump -u username -p password dbname table1 table2 ...-> BackupName.sql |
- username为数据库用户名;
- password为数据库密码
- dbname参数表示数据库的名称;
- table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
- BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
1
2
3
|
$ exec = "D:/phpstudy/mysql/bin/mysqldump -u" .$db_user. " -p" .$db_pwd. " " .$db_name. " > " .$ name ; exec ($ exec ); //前面要设置mysql执行文件的路径。 |
注意:这里的-p后面的password不要有空格,否则可能只会生成空的sql文件,后面$name是生成文件路径及名称。
简单的备份数据库就完成了。
还原使用mysqldump命令备份的数据库的语法
1
|
mysql -u root -p password dbname < backup.sql |
参数跟备份时一样,backup.sql
是需要还原的数据库文件,文件路径为绝对路径。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:http://www.codetc.com/article-275-1.html