laravel 数据库备份和数据恢复
2018-03-02 16:50
295 查看
/** * 数据备份 */ public function save(){ $DB_HOST = getenv('DB_HOST'); $DB_DATABASE = getenv('DB_DATABASE'); //从配置文件中获取数据库信息 $DB_USERNAME = getenv('DB_USERNAME'); $DB_PASSWORD = getenv('DB_PASSWORD'); $dumpfname = $DB_DATABASE . "_" . date("Y-m-d_H-i-s").".sql"; $command = "D:\\phpStudy2016\\MySQL\\bin\\mysqldump --add-drop-table --host=$DB_HOST --user=$DB_USERNAME "; if ($DB_PASSWORD) $command.= "--password=". $DB_PASSWORD ." "; $command.= $DB_DATABASE; $command.= " > " . $dumpfname; system($command); return view("errors.503")->with('info','数据备份成功,在根目录下'.$dumpfname)->with('url','/mysql/mysqlAdmin/index');}
/**
* 数据恢复
* @param Request $request
*/
public function update_save(Request $request){
$input = \Input::except('_token');
$path = public_path();
$file_name = $path.'\\'.$input['sql']; //要导入的SQL文件名
$file_name = str_replace('\\','/',$file_name);
//dd($file_name);
$DB_HOST = getenv('DB_HOST');
$DB_DATABASE = getenv('DB_DATABASE'); //从配置文件中获取数据库信息
$DB_USERNAME = getenv('DB_USERNAME');
$DB_PASSWORD = getenv('DB_PASSWORD');
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
//dd($fp);
@mysql_connect($DB_HOST, $DB_USERNAME, $DB_PASSWORD) or die("不能连接数据库 $DB_HOST");//连接数据库
@mysql_select_db($DB_DATABASE) or die ("不能打开数据库 $DB_DATABASE");//打开数据库
echo "<p>正在清空数据库,请稍等....<br>";
$result = mysql_query("SHOW tables");
//dd($result);
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命令
//echo "mysql -u$DB_USERNAME -p$DB_PASSWORD $DB_DATABASE < ".$file_name;
//echo "source ".$file_name;
//exec("source ".$file_name);
$_sql = file_get_contents($file_name);
$_arr = explode(';', $_sql);
//dd($_arr);
foreach ($_arr as $_value) {
mysql_query("SET NAMES 'utf8'");
mysql_query($_value.';');
}
echo "<br>导入完成!";
mysql_close();
相关文章推荐
- 操作系统命令误删除数据库的数据文件并数据库没有备份的恢复
- 【mysql】数据库定时备份、数据恢复
- ORA-03113: 通信通道的文件结尾以及用备份的数据文件恢复原数据库的解决方案
- linux下网站数据和数据库的备份与恢复
- 数据库 之 数据备份和恢复概念
- 数据库数据文件没有备份的恢复 ORA-01157 【续+2】
- 数据库---数据备份、数据恢复、数据仓库
- 备份恢复数据数据库案例二--利用在线备份恢复数据库。
- Navicat for MySQL定时备份数据库及数据恢复详解
- 没备份数据库,只有原始的文件夹,如何恢复数据
- SQL server 2008 数据安全(备份和恢复数据库)
- 系统损坏,移植Oracle(9.2.0.1)数据库(无备份数据文件进行恢复)
- RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复
- Mysql命令行下备份恢复数据库数据操作
- Oracle-->数据库备份与恢复-->数据库库归档模式
- 从一台2005数据库备份后 ,想到另一台2005数据恢复 但发生 备份集中的数据库备份与现有的XX 数据库不同 选择覆盖现有数据库 也不行
- MongoDB 数据库操作(八)-数据备份和恢复
- dos命令 连接数据库 进行数据库分离 备份 恢复数据
- [数据库] Navicat for MySQL定时备份数据库及数据恢复
- Oracle的学习四:数据库管理员、逻辑备份与恢复、数据字典、动态性能视图、管理表空间与数据文件