1、配置my.cnf
配置innodb_force_recovery = 1或2——6几个数字,重启MySQL
2、导出数据脚本
mysqldump -uroot -p123456 test > test.sql
导出SQL脚本。或者用Navicat将所有数据库/表导入到其他服务器的数据库中。
注意:这里的数据一定要备份成功。然后删除原数据库中的数据。
3、删除ib_logfile0、ib_logfile1、ibdata1
备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除
4、配置my.cnf
将my.cnf中innodb_force_recovery = 1或2——6几个数字这行配置删除或者配置为innodb_force_recovery = 0,重启MySQL服务
5、将数据导入MySQL数据库
mysql -uroot -p123456 test < test.sql; 或者用Navicat将备份的数据导入到数据库中。
如果在导入数据过程中发生tablespace不存在的问题,请删除data目录相应database下的文件。
此种方法下要注意的问题:
1、ib_logfile0、ib_logfile1、ibdata1这三个文件一定要先备份后删除;
2、一定要确认原数据导出成功了
3、当数据导出成功后,删除原数据库中的数据时,如果提示不能删除,可在命令行进入MySQL的数据目录,手动删除相关数据库的文件夹或者数据库文件夹下的数据表文件,前提是数据一定导出或备份成功。
————————————————
原文链接
VR:是一个完全的虚拟世界。
AR:真实世界和虚拟世界相互结合。
MR:具备学习能力能够实现全息投影和真实世界环境融合
应用场景商城类多规格组合如:
['红色','白色','蓝色','黑色']
['S','M','L','XL','XXL']
需要得到能有多少种组合
$combine_array = [['红色','白色','蓝色','黑色'],['S','M','L','XL','XXL']]
// 交叉排列的组合算法
protected function combine($array)
{
$heads = $array[0];
for ($i = 1; $i < count($array); $i++){
if (count($array[$i])){
$heads = $this->addNewType($heads, $array[$i]);
}
}
return $heads;
}
protected function addNewType($heads, $choices)
{
$result = [];
for ($i = 0; $i < count($heads); $i++){
for ($j = 0; $j < count($choices); $j++){
$result[] = $heads[$i] . ':' . $choices[$j];
}
}
return $result;
}