php查询数据库运行状态,我可以构造一个php页面以对30个mysql数据库运行查询检查吗?...

博主分享了一种方法,通过PHP脚本连接30个Hostgator服务器上的MySQL数据库,定期检查其工作状态,并报告哪些数据库存在问题。脚本遍历登录凭证,执行SELECT查询以验证数据库可用性,节省了手动检查的时间。
摘要由CSDN通过智能技术生成

我在hostgator托管,大约有30个mysql数据库(位于同一服务器上的所有不同网站).在过去的一年中..没问题,在最近的两天里,我突然发现其中有5-10个数据库被标记为“崩溃”,并且它们均未返回任何结果…所以我的网站没有显示任何信息.我必须运行“修复表mytable”来修复这些问题,然后它们才能再次正常工作.

不用每天早上登录数据库1到1,而是可以设置一个php页面以连接所有30个数据库并运行简单的select语句,如果可以,返回

“数据库db1正在工作”

“数据库db2正在工作”

然后在不工作时返回

“没有db3的回复”

….或类似的东西?

谢谢!

解决方法:

没有理由没有一个列出所有数据库名称和登录凭证并尝试依次连接到每个数据库的脚本:

$logins = array(

array('dbname' => 'blah', 'user' => 'username1', 'password' => 'password1'),

array('dbname' => 'yuck', ....)

...

);

$failures = array();

foreach ($logins as $login) {

$con = mysql_connect('servername', $login['user'], $login['password']);

if (!$con) {

$failures[] = $login['dbname'] . " failed with " . mysql_error();

continue;

}

$result = mysql_select_db($login['dbname']);

if (!$result) {

$failures[] = "Failed to select " . $login['dbname'] . ": " . mysql_error();

continue;

}

$result = mysql_query("SELECT something FROM sometable");

if (!$result) {

$failures[] = "Faile to select from " . $login['dbname'] . ": " . mysql_error();

continue;

}

if (mysql_num_rows($result) != $some_expected_value) {

$failures[] = "Got incorrect rowcount " . mysql_num_rows($result) . " on " . $login['dbname'];

}

etc....

mysql_close();

}

if (count($failures) > 0) {

echo "Failures found: "

print_r($failures);

}

标签:connect,mysql

来源: https://codeday.me/bug/20191102/1988682.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值