2016-10-20 1 views
0

Docker-compose:Docker, MYSQL_ROOT_PASSWORD funktionieren nicht

mysql: 
image: mysql:5.7.16 
container_name: f_mysql 
volumes: 
    - ./db:/var/lib/mysql 
environment: 
    MYSQL_ROOT_PASSWORD: sheep 
expose: 
    - '3306' 

und ich verwende docker exec Eingang dieser Behälter,

und ich tippe echo $MYSQL_ROOT_PASSWORD, dann habe ich sheep,

aber die mysql root Passwort ist immer noch '',

wenn ich 'mysql -uroot' eintippe, logge ich mich mysql.

+0

Ich habe dies lokal mit einem ähnlichen Setup versucht (andere Version von MySQL, obwohl - ich benutze 5.5) und ich kann mich nicht ohne Passwort bei MySQL anmelden. Ich muss den Schalter "-p" hinzufügen und muss das Passwort angeben. – nwinkler

+0

Getestet mit bereitgestellten komponieren (ohne das Volumen) und scheint gut zu funktionieren. –

Antwort

3

Sie benötigen Docker-compose Datei zu beheben:

environment: 
    - MYSQL_ROOT_PASSWORD=sheep 

Hier finden Sie die vollständige Docker-compose das, was erreicht Sie wollen:

version: '2' 

services: 
    mysql: 
     image: mysql:5.7.16 
     container_name: f_mysql 
     volumes: 
      - ./db:/var/lib/mysql 
     environment: 
      - MYSQL_ROOT_PASSWORD=sheep 
     expose: 
      - '3306' 

Dann mit einem docker exec -it f-mysql /bin/bash und im Inneren des Behälters mysql -u root -p, die Verwendung von Schafen, als das Passwort, wird die einzige Möglichkeit sein, eine Verbindung zum mysql-Server herzustellen.

+0

danke, ich habe ein Fragment, habe auch ein Nginx, und ein PHP-fpm, – Silence

+0

und Umgebung in Nginx funktioniert nicht, vielleicht mein System hat ein Problem, ich versuche, es neu zu installieren. – Silence

+0

Gehen Sie einen Dienst nach dem anderen. Machen Sie MySQL arbeiten und dann mit dem Nginx und dann mit dem PHP fortfahren. Ich bezweifle, dass Ihr System neu installiert werden muss. Versuchen Sie auch, einige Protokolle zu bekommen, und Sie können hier nach anderen Problemen fragen, um Lösungen zu finden. – gpapaz