ofbeaton / db-ping
验证数据库服务器是否响应。
1.0.0
2017-02-12 16:29 UTC
Requires
- php: >=5.6.0
- ext-pdo: *
- symfony/console: ^3.2
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9
- ofbeaton/granite: ^1.0
- phing/phing: ^2.16
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^2.8
Suggests
- ext-pcntl: Linux signal handling for gracefull CTRL-C
- ext-pdo_mysql: Verify MySQL servers
- ext-pdo_odbc: Verify ODBC connected servers
This package is not auto-updated.
Last update: 2024-09-14 19:20:09 UTC
README
db-ping通过执行定时循环中的查询来验证数据库服务器是否响应。
可选地包含从属复制检查。
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针对真实的数据库服务器
- 设置php服务器以ODBC
- 将您要测试的服务器添加到
/etc/odbc.ini
文件中(在linux上) - 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许可证分发。有关更多信息,请参阅许可证文件。