2016年11月

mysql查询是出现Incorrect key file for table ‘test’; try to repair it

转载 http://www.cnblogs.com/zjoch/p/3267131.html

 mysql> select * from test;
 ERROR 1034 (HY000): Incorrect key file for table ‘test’; try to repair it

首先通过repair table修复:

 mysql> repair table test;
 +—————+——–+———-+———————————————————+
 | Table         | Op     | Msg_type | Msg_text                                                |
 +—————+——–+———-+———————————————————+
 | test.test | repair | Error    | Incorrect key file for table ‘test’; try to repair it |
 | test.test | repair | error    | Corrupt 

如果还是没用,运行下面命令

 mysql> repair table test USE_FRM;
 +—————+——–+———-+———————————————————+
 | Table         | Op     | Msg_type | Msg_text                                                |
 +—————+——–+———-+———————————————————+
 | test.test | repair | Error    |Number of rows changed from 0 to 110423 |
 | test.test | repair | status   | OK  

按理应该可以了。
如果还是没用,则退出mysql,执行如下修复动作:

 myisamchk -of /var/lib/mysql/test/test.MYI
 myisamchk -r /var/lib/mysql/test/test.MYI
 myisamchk safe-recover /var/lib/mysql/test/test.MYI

再重启mysql后应该可以正常了。

php获取网址301之后的网址

private function getUrlFunc($url)
    {
        $ch=  curl_init($url);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_exec($ch);
        $url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
        return $url;
    }

php逐行读取数据

        $inputFile = './url_input.txt';
        $outputFile = './url_output.txt';
        // 获取当前positin
        $position = I('get.position');
        if (!$position)
        {
            file_put_contents($outputFile,"");
        }
        $file = fopen($inputFile, "r");
        $retuen = array('status'=>true,'finished'=>false,'position'=>0);
        //Output a line of the file until the end is reached
        //把指针移动到当前要读取的位置
        fseek($file,$position,SEEK_SET);
        if(!feof($file))
        {
            // 读取一行数据
            $url = fgets($file);
            $url = $this->getUrlFunc($url);
            // 记录当前指针位置,用于下次请求
            $retuen['position'] = ftell($file);
            $retuen['url'] = $url;
            file_put_contents($outputFile,$url . "\r\n",FILE_APPEND);
        }
        else
        {
            $retuen = array('status'=>true,'finished'=>true);
        }
        fclose($file);
        $this->ajaxReturn($retuen);