Настройка Mysql 5.7 с Travis CI
Я не могу запустить свои тесты на 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
сразу после этого, я делаю :
$ mysql -uroot < tests/ApiBundle/Datas/dump_test.sql
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
почему ?? Я пробовал так много вещей... и Google определенно не мой друг для этой проблемы...
2 ответов
согласно текущим документам, вам нужно только включить sudo и добавить следующую конфигурацию в свой
addons:
apt:
sources:
- mysql-5.7-trusty
packages:
- mysql-server
- mysql-client
источник https://docs.travis-ci.com/user/database-setup/#MySQL-5.7
Ok я узнал, как переустановить MySQL 5.6 в контейнере по умолчанию Travis CI.
вот что нужно в .travis.yml
:
services:
- mysql
sudo: true
before_script:
- bash .travis.install-mysql-5.7.sh
и вот это .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
Я надеюсь, что это поможет любому, кто сталкивается с той же проблемой !