首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP项目travis MySQL 5.7

CakePHP项目travis MySQL 5.7
EN

Stack Overflow用户
提问于 2017-11-10 15:15:02
回答 1查看 248关注 0票数 0

我正在尝试与travis一起建立我的项目,以检查MySQL 5.7

我的.travis.yml如下

代码语言:javascript
复制
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)

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 17:02:55

经过一番研究和尝试,我找到了我问题的答案。

下面是要点:https://gist.github.com/rrd108/d366cca7feb33825e6989ba3fad049de

.travis.yml中,我不得不改变一些事情。

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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

我不得不改变我在Datasourcesconfig/app.default.php

代码语言:javascript
复制
'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,如下所示

代码语言:javascript
复制
 "phpunit/phpunit": "^5.7|^6.0" 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47225908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档