2016-01-16 25 views
7

Non riesco a eseguire i miei test su Travis CI perché non riesco a trovare un modo per configurare mysql 5.7 nel contenitore.Configurare Mysql 5.7 con Travis CI

Ho trovato questo aspetto https://gist.github.com/BenMorel/d981f25ead0926a0cb6d che spiega un metodo di configurazione per travis.yml. Ecco i comandi:

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 

subito dopo, sto facendo:

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

Perché ?? Ho provato così tante cose ... E Google non è sicuramente un mio amico per questo problema ...

+0

Hai provato 'sudo mysql -uroot

+0

sì, ho fatto ... lo stesso errore! –

+0

Hai provato a usare 'Docker'? Controlla questo: https://medium.com/@mtparet/install-mysql-server-5-7-on-travis-96f2ebc0f339 – ghashi

risposta

8

Ok ho scoperto come reinstallare MySQL 5.6 nel contenitore predefinito di Travis CI.

Ecco ciò che è necessario in .travis.yml:

services: 
    - mysql 
sudo: true 
before_script: 
    - bash .travis.install-mysql-5.7.sh 

E qui è la .travis.install-mysql-5.7.sh (a cura grazie a @codyzu risposta):

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 

Spero che sarebbe aiutare chiunque di fronte lo stesso problema !

+0

Nei casi in cui sysem funziona con utenti MySQL (o qualcosa di simile), chiamando 'sudo mysql_upgrade' come l'ultimo passo di' .travis.install-mysql-5.7.sh' è richiesto. – Ilija

+0

Questo non funziona per me, ho problemi con la dipendenza: 'mysql-server dipende da mysql-community-server (= 5.7.8-rc-1ubuntu12.04); tuttavia: yet.' pacchetto mysql-community-server non è configurato – Feek

+0

ho dovuto aggiungere questo per farlo funzionare correttamente per me: sudo mysql_upgrade -u radice sudo servizio mysql restart –