代码之家  ›  专栏  ›  技术社区  ›  Mike B

用PHP打开MySQL慢速查询日志

  •  0
  • Mike B  · 技术社区  · 15 年前

    代码:

    $log = file_get_contents('/var/log/mysql/mysql-slow.log');
    

    答复(错误):

    Warning: file_get_contents(...): failed to open stream: Permission denied ...
    

    我可以 cat 从终端发送的文件很好。我已将日志文件chmoded为0777,结果相同。MySQL运行时是否不允许此操作?有办法解决这个问题吗?

    PHP5.2.10、Ubuntu 9.10、MySQL 5.1.37

    5 回复  |  直到 15 年前
        1
  •  1
  •   Adam Hopkinson    15 年前

    我猜运行php的用户与日志文件的所有者不相同或不在同一组中。

    你能用fopen读取文件吗?

        2
  •  2
  •   Wim    15 年前

    还要确保目录正确 /var/log/mysql

        3
  •  1
  •   streetparade    15 年前

    你试过波本吗?

    $fp=popen("cat /var/log/mysql/mysql-slow.log","r");
    while (!feof($fp)) {
        $buffer = fgets($fp, 4096);
        $croninf .= '<tr><td>' . $buffer . '</td></tr>' . "\n";
    } 
    
        4
  •  0
  •   Felis    11 年前

    将用户添加到adm groupon linux shell命令

    adduser www-data adm

    将文件权限授予770(所有者和组完全访问权限)并重新启动系统

    chmod 770 /var/log/mysql/mysql-slow.log
    reboot
    

    然后从php读取文件

    $filename = '/var/log/mysql/mysql-slow.log';
    $handle = fopen($filename, "r");
    $icerik = fread($handle, filesize($filename));
    fclose($handle);
    print_r($icerik);
    
        5
  •  0
  •   laaposto    10 年前

    chmod 777 /var/log/mysql/mysql-slow.log
    <?php 
    $file = "/var/log/mysql/mysql-slow.log"; //local
    $fp = fopen($file, "r");
    if ($fp) {
        while (($line = fgets($fp, 4096)) !== false) {
            echo "<br/>" . $line;
        }
    }
    ?>