问题描述
我正在尝试编写一个小的 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' 不存在
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)