zhaobin693
发表于 2013-1-14 10:40:06
非常好,利用CI提供的数据库备份工具之后,使用CI的模型进行还原时出现各种问题,这个问题困扰了许久,也尝试过各种办法,分解SQL,利用query一条一条的执行等等,但没想到问题处在注释部分,利用你给出的正则表达式取出注释部分,完美解决了还原问题
去年明日
发表于 2013-1-14 14:25:28
我用的是crontab 定时执行 mysqlback ,两种方法,那种更优
Rzoro
发表于 2013-1-15 11:27:02
不错啊
Benson
发表于 2017-6-12 14:06:47
case 'add':
//生成数据库备份
$this->load->helper('string');
$this->load->dbutil();
$prefs = array(
'ignore' => array($this->db->dbprefix('ci_sessions')),
'format' => 'txt'
);
$backup = $this->dbutil->backup($prefs);
$this->load->helper('file');
write_file($bak_dir.$this->db->database.'_'.date('Ymd').'_'.random_string('alnum', 8).'.sql', $backup);
$data['mes']="备份成功!";
$data['backurl']= base_url('/set/backup');
$this->load->view('templates/note',$data);
break;
case 'recover': //恢复指定数据库
$this->load->helper('file');
$this->load->helper('string');
$file = $bak_dir.$id; //.sql文件实际地址
//数据库信息
$host = $this->db->hostname;
$user = $this->db->username;
$pwd= $this->db->password;
$db = $this->db->database;
$string = read_file($file);
$mysqli = new mysqli($host,$user,$pwd,$db);
$mysqli->set_charset("utf8");
$result = $mysqli->multi_query($string);
$mysqli->close();
if($result){
$data['mes']="数据库恢复成功!";
} else{
$data['mes']="数据库恢复失败!";
}
$data['backurl']= base_url('/set/backup');
$this->load->view('templates/note',$data);
break;
Benson
发表于 2017-6-12 14:08:56
Benson 发表于 2017-6-12 14:06
完美
豪气东来
发表于 2017-6-14 16:10:49
如何备份指定的数据库了?
豪气东来
发表于 2017-6-14 16:14:07
上面的方法,只是备份默认的数据库test,如何备份需要指定的数据库了?
Benson
发表于 2017-6-16 09:24:56
豪气东来 发表于 2017-6-14 16:14
上面的方法,只是备份默认的数据库test,如何备份需要指定的数据库了?
$mysqli = new mysqli($host,$user,$pwd,$db);
将这几个参数改成你要备份的数据库相关信息就好了