是否可以通过 PHP/PDO 查询 mysqlProxy 管理端口?

问题描述

我正在尝试编写一个小的 PHP 类来处理 MysqLProxy 的一些管理功能 - 例如查看摘要、检查主机组等。为了做到这一点,我正在尝试使用 PHP/PDO 连接到在 127.0.0.1 上运行的 MysqLproxy 主机上的管理端口 6032。

我可以在它的操作端口 6033 上连接和查询它并且它工作正常,但是如果我尝试连接到管理界面,我会收到错误:没有使用以下连接字符串选择数据库

return new PDO("MysqL:host=" . self::MysqLPROXY_DEFAULT_HOST . ";port=" . self::MysqLPROXY_ADMIN_PORT." ",constant('DB_USER'),constant('DB_PASSWORD'));

如果我将“;dbname=stats”或“;dbname=MysqL”或任何其他数据库(main、disk、stats、monitor等)添加到连接字符串中,然后尝试执行以下操作:

public static function getCachedQueries($hostgroup=-1)
{
    try {
        //SELECT hostgroup,sum_time,count_star,digest_text FROM stats_MysqL_query_digest where hostgroup=-1 ORDER BY count_star DESC;
        $link = new PDO("MysqL:host=" . self::PROXY_HOST_ADDR . ";port=" . ADMIN_PORT.";dbname=MysqL",constant('DB_PASSWORD'));
        $strsql = "SELECT hostgroup,digest_text FROM stats_MysqL_query_digest where hostgroup=:hostgroup ORDER BY count_star DESC";
        $parms = [':hostgroup' => $hostgroup];
        $sth = $link->prepare($strsql);
        $sth->execute($parms);
        $errs = $sth->errorInfo();
        if ($errs[2] != '') {
            error_log(__FUNCTION__.":".$errs[2]);
            trigger_error($errs[2]);
            return false;
        }
        $results = $sth->fetchAll(PDO::FETCH_ASSOC);
        return $results;
    } catch(Exception $e){
        error_log($e->getMessage());
    }
}

我收到错误:getCachedQueries:Table 'MysqL.stats_MysqL_query_digest' 不存在

是否不能通过 PHP 查询管理界面以编程方式对其进行管理?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...