使用Travis CI配置Mysql 5.7

Phi*_*RLE 8 continuous-integration travis-ci mysql-5.7

我无法在Travis CI上运行测试,因为我找不到在容器中设置mysql 5.7的方法.

我找到了这个要点https://gist.github.com/BenMorel/d981f25ead0926a0cb6d,解释了配置方法travis.yml.以下是命令:

sudo apt-get remove --purge "^mysql.*"
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/log/mysql
echo mysql-apt-config mysql-apt-config/enable-repo select mysql-5.7-dmr | sudo debconf-set-selections
wget http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
sudo dpkg --install mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
sudo apt-get update -q
sudo apt-get install -q -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" mysql-server
Run Code Online (Sandbox Code Playgroud)

在那之后,我正在做:

$ mysql -uroot < tests/ApiBundle/Datas/dump_test.sql
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)

为什么?我已经尝试了很多东西......谷歌绝对不是我这个问题的朋友......

Phi*_*RLE 8

好的我已经找到了如何在Travis CI默认容器中重新安装MySQL 5.6.

以下是需要的.travis.yml:

services:
  - mysql
sudo: true
before_script:
  - bash .travis.install-mysql-5.7.sh
Run Code Online (Sandbox Code Playgroud)

这是.travis.install-mysql-5.7.sh(编辑感谢@codyzu答案):

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
Run Code Online (Sandbox Code Playgroud)

我希望它可以帮助任何面临同样问题的人!


小智 1

根据当前文档,您只需要启用 sudo,并在.travis.yml文件中添加以下配置

addons:
  apt:
   sources:
    - mysql-5.7-trusty
   packages:
    - mysql-server
    - mysql-client
Run Code Online (Sandbox Code Playgroud)

来源https://docs.travis-ci.com/user/database-setup/#MySQL-5.7