ofbeaton/db-ping

验证数据库服务器是否响应。

安装: 15

依赖项: 0

建议者: 0

安全: 0

星星: 5

关注者: 2

分支: 1

开放性问题: 6

类型:项目

1.0.0 2017-02-12 16:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:20:09 UTC


README

db-ping通过执行定时循环中的查询来验证数据库服务器是否响应。

Latest Stable Version Minimum PHP Version Build Status

可选地包含从属复制检查。

PHP 5.6+ 控制台命令,使用PDO提供数据库驱动

  • MySQL
  • ODBC(例如,Microsoft SQL Server ...)

更新

该项目被认为处于可使用状态且功能完善。

该项目用于企业应用。因此,作者不太可能定期更新它,而是在使用该软件的企业应用遇到问题时才更新。您应该预计在5-10年内会有更新。

将监控问题和PR,我们将继续与社区合作,以便在有人贡献时提供更新。

通过phar安装

在继续之前,您需要一个有效的PHP 5.6+安装。

安装db-ping的推荐方法是下载phar。

请参阅发布以获取下载。

然后,从命令行运行phar

php db-ping.phar help

php db-ping.phar mysql --pass=mysecretpassword

php db-ping.phar ODBC -d OdbcName -u user -p password

测试

烟熏测试

如果没有运行本地mysql服务器,ping将会返回如下的connection refused错误

$ php bin/db-ping mysql
DB-PING 127.0.0.1:3306
from 127.0.0.1:3306: connection refused. delay=2000ms, exec=0ms, since success=0s, since fail=0s
from 127.0.0.1:3306: connection refused. delay=2000ms, exec=0ms, since success=0s, since fail=2.0006s

针对真实的MySql服务器

启动一个临时的mysql服务器

docker run --name some-mysql --rm -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -p 3306:3306 mysql

等待几秒钟初始化,然后打开另一个终端并ping它

$ php bin/db-ping mysql -u user -p pass
DB-PING 127.0.0.1:3306
from 127.0.0.1:3306: connected. delay=2000ms, exec=0ms, since success=0s, since fail=0s
from 127.0.0.1:3306: check passed. delay=2000ms, exec=0ms, since success=0s, since fail=0s
from 127.0.0.1:3306: check passed. delay=2000ms, exec=0ms, since success=2.0022s, since fail=0s
from 127.0.0.1:3306: check passed. delay=2000ms, exec=0ms, since success=4.0028s, since fail=0s

停止dockerfile: docker stop some-mysql

通过ODBC针对真实的数据库服务器

  1. 设置php服务器以ODBC
  2. 将您要测试的服务器添加到/etc/odbc.ini文件中(在linux上)
  3. ping它
$ php bin/db-ping ODBC -d MarketflowAcc -u rou -p rou
DB-PING odbc:MarketflowAcc
from odbc:MarketflowAcc: connected. delay=2000ms, exec=0ms, since success=0s, since fail=0s
from odbc:MarketflowAcc: check passed. delay=2000ms, exec=0ms, since success=0s, since fail=0s
from odbc:MarketflowAcc: check passed. delay=2000ms, exec=0ms, since success=2.0058s, since fail=0s
from odbc:MarketflowAcc: check passed. delay=2000ms, exec=0ms, since success=4.0071s, since fail=0s
from odbc:MarketflowAcc: check passed. delay=2000ms, exec=0ms, since success=6.0083s, since fail=0s

ping SQL查询可以通过repeat选项重复多次。这有助于使ping测试更具压力

$ php bin/db-ping ODBC -d MarketflowAcc -u rou -p rou --repeat 100

可以通过format选项控制输出格式

$ php bin/db-ping ODBC -d MarketflowAcc -u rou -p rou --repeat 100 --format te
DB-PING odbc:MarketflowAcc
2017-01-11 14:55:35, 0
2017-01-11 14:55:35, 3
2017-01-11 14:55:37, 3
2017-01-11 14:55:39, 3
2017-01-11 14:55:41, 3

此外,用et代替te会打乱顺序

单元测试

运行vbin/phing check

许可

此软件根据MIT许可证分发。有关更多信息,请参阅许可证文件