我正在尝试与travis一起建立我的项目,以检查MySQL 5.7
我的.travis.yml如下
language: php
dist: trusty
sudo: false
php:
- 5.6
- 7.0
- 7.1
env:
- DB=mysql db_dsn='mysql://root@127.0.0.1/cakephp_test'
services:
- mysql
- docker
matrix:
fast_finish: true
before_install:
- sudo service mysql stop || sudo service mysql-5.6 stop || sudo stop mysql-5.6 || sudo stop mysql || echo "failed to stop mysql"
- sudo docker run -d -p 3306:3306 mysql:5.7
- mysql -u root -e "CREATE DATABASE cakephp_test;"
before_script:
- composer install;
- composer require phpunit/phpunit:"^5.7|^6.0";
- composer run-script post-install-cmd --no-interaction;
script:
- vendor/bin/phpunit;
notifications:
email: false似乎我不能使用MySQL 5.7没有对接,但通过这个设置,我无法连接到MySQL服务器。
错误2002 (HY000):无法通过套接字'/var/run/mysqld/mysqld.sock‘连接到本地MySQL服务器(2)
我错过了什么?
发布于 2017-11-10 17:02:55
经过一番研究和尝试,我找到了我问题的答案。
下面是要点:https://gist.github.com/rrd108/d366cca7feb33825e6989ba3fad049de
在.travis.yml中,我不得不改变一些事情。
language: php
dist: trusty
sudo: true
php:
- 5.6
- 7.0
- 7.1
env:
- DB=mysql db_dsn='mysql://root@127.0.0.1/cakephp_test'
services:
- mysql
matrix:
fast_finish: true
before_script:
- bash .travis.install-mysql-5.7.sh
- mysql -u root -e "CREATE DATABASE cakephp_test;"
- composer update;
- composer run-script post-install-cmd --no-interaction;
script:
- vendor/bin/phpunit;
notifications:
email: false我需要一个.travis.install-mysql-5.7.sh文件
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
wget https://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
sudo dpkg --install mysql-apt-config_0.7.3-1_all.deb
sudo apt-get update -q
sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
sudo mysql_upgrade我不得不改变我在Datasources的config/app.default.php
'test' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'root',
'password' => '',
'database' => 'cakephp_test',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
],由于我想在php5.6上进行测试,所以我应该在我的composer.json中使用phpunit,如下所示
"phpunit/phpunit": "^5.7|^6.0" https://stackoverflow.com/questions/47225908
复制相似问题