【发布时间】:2015-06-14 03:40:45
【问题描述】:
我们有一个 Jenkins CI 服务器,它在每次提交时运行我们的测试套件,由 GitHub 挂钩触发。
我们最近将测试套件从在 Jenkins 服务器上本地运行转移到在 VirtualBox/Vagrant VM 内运行。这是为了确保测试配置与开发环境匹配。这是在 Ubuntu 14.04 主机上运行的 Ubuntu 14.04 来宾。
迁移到 VM 模型后,PHPUnit 偶尔会失败,无法连接到 MySQL。错误是Can't connect to MySQL server on '127.0.0.1'。
此错误是间歇性的,不易重现。也就是说,如果我在 Jenkins 上触发新构建,它通常会成功。但是,当新构建被 GitHub 钩子触发时,它比手动触发的构建更容易失败,有时会成功。
这是我尝试过的:
-
sudo service mysql restart运行前phpunit -
sleep 5在mysql restart和phpunit之间 - 连接到
localhost和127.0.0.1-- 当我尝试连接到localhost时,我收到了间歇性错误Can't connect to MySQL server on '/var/run/mysqld/mysqld.sock'。
这是失败构建的完整输出:
sudo service mysql restart
* Stopping MySQL (Percona Server) mysqld
...done.
* Starting MySQL (Percona Server) database server mysqld
...done.
* Checking for corrupt, not cleanly closed and upgrade needing tables.
sleep 5
sudo service mysql status
* /usr/bin/mysqladmin Ver 8.42 Distrib 5.6.23-72.1, for debian-linux-gnu on x86_64
Server version 5.6.23-72.1-log
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 6 sec
Threads: 1 Questions: 111 Slow queries: 0 Opens: 761 Flush tables: 1 Open tables: 754 Queries per second avg: 18.500
phpunit
PHPUnit 4.6.2 by Sebastian Bergmann and contributors.
Configuration read from /vagrant/phpunit.xml
...........EEE.E.............E............................EEEEE.
Time: 8.51 seconds, Memory: 135.25Mb
1) ProcessDatasetsTest::test_process_on_census_fraction
PDOException: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111)
【问题讨论】:
标签: mysql jenkins phpunit vagrant virtualbox