当前位置: 首页 > 后端技术 > PHP

使用php

时间:2023-03-29 15:02:49 PHP

通过Crontab计划备份Mariadb(Mysql)本教程将使用纯php备份数据库并下载到目录。$crontab-e设置为每天早上00:00执行00***php/var/www/backup.phpbackup.php脚本。请记住以“connect_error){die('错误:('.$mysqli->connect_errno.')'.$mysqli->connect_error);}$mysqli->query("SETNAMESutf8");$mysqli->set_charset("utf8mb4");$results=$mysqli->query("SHOWTABLES");while($row=$results->fetch_array()){if(!in_array($row[0],$options['db_exclude_tables'])){$mtables[]=$row[0];}}foreach($mtablesas$table){$contents.="--Table`".$表。"`--\n";$results=$mysqli->query("SHOWCREATETABLE".$table);while($row=$results->fetch_array()){$contents.=$row[1].";\n\n";}$results=$mysqli->query("SELECT*FROM".$table);$row_count=$results->num_rows;$fields=$results->fetch_fields();$fields_count=count($fields);$insert_head="INSERTINTO`".$table."`(";for($i=0;$i<$fields_count;$i++){$insert_head.="`".$fields[$i]->名称。$insert_head.="值\n";如果($row_count>0){$r=0;while($row=$results->fetch_array()){if(($r%400)==0){$contents.=$insert_head;}$contents.="(";for($i=0;$i<$fields_count;$i++){$row_content=str_replace("\n","\\n",$mysqli->real_escape_string($row[$i]));switch($fields[$i]->type){案例8:案例3:$contents.=$row_content;休息;默认值:$contents.="'"。$row_content."'";}if($i<$fields_count-1){$contents.=',';}}if(($r+1)==$row_count||($r%400)==399){$contents.=");\n\n";}else{$contents.="),\n";}$r++;}}}if(!is_dir($options['db_backup_path'])){mkdir($options['db_backup_path'],0777,true);}##备份后的sql名称$backup_file_name="dev-".date("Y-m-dH:i:s").".sql";$fp=fopen($options['db_backup_path'].'/'.$backup_file_name,'w+');if(($result=fwrite($fp,$contents))){//echo"已创建备份文件'$backup_file_name'($result)";}fclose($fp);return$backup_file_name;}##资料库设置$options=array('db_host'=>'localhost','db_uname'=>'root',//数据库用户帐号'db_password'=>'password',//数据库密码'db_to_backup'=>'db',//数据库名称'db_backup_path'=>'/var/www/',//保存到'db_exclude_tables'的路径=>array());$backup_file_name=backup_mysql_database($options);这样就可以通过php备份到宿主机,直接生成sql文件。参考https://ianakaberlin.medium.c...