下面是一个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.sqlusername为数据库用户名;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是须要还原的数据库文件,文件路径为绝对路径。
后面