2015-01-09 20 views
5

Ich versuche, einen NodeJS Container zu konfigurieren, um eine MySQL-Datenbank zu verbinden.Docker mysql Host nicht privilegiert

Mein Code sieht wie folgt aus:

var pool = mysql.createPool({ 
    host  : 'mysql', 
    port  : '3306', 
    user  : 'root', 
    password : '...', 
    database : 'general', 
    connectionLimit : 50, 
    queueLimit : 5000 
}); 

ich die Standard mysql Container verwende.

Ich bin mit Feigen die Behälter für den Start. fig.yml sieht ungefähr so ​​aus:

node: 
    build: node 
    ports: 
    - "9000:9000" 
    - "9001:9001" 
    links: 
    - mysql:mysql 
    command: node server/Main.js 

mysql: 
    image: mysql 
    volumes: 
    - /data/test:/var/lib/mysql 
    environment: 
    MYSQL_ROOT_PASSWORD: ... 

Jedes Mal, wenn ich versuche ich die folgende Fehlermeldung zu verbinden:

failed to connect to database: Error: ER_HOST_NOT_PRIVILEGED: Host '172.17.0.142' is not allowed to connect to this MySQL server 

Jede Idee, was ich falsch mache? Ich habe mit Wordpress herumgespielt und es scheint sich ohne Probleme auf die gleiche mysql db zu verbinden.

Thx!

Bearbeiten Also habe ich die Antwort am Ende gefunden. Das Problem war in der Tat eine Privilegfrage. Ich habe den folgenden Befehl ausgeführt:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' 

Und ich konnte auf die Datenbank zugreifen.

+1

Könnte [dies hilfreich sein] (http://stackoverflow.com/questions/19943615/connect-to-remote-mysql-database)? Oder vielleicht [diese] (http://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server)? – wassgren

+0

Was ist Ihre MySQL-Version? 'General' ein reserviertes Wort in MySQL ist 5.6, verwenden Zecken in Ihrem Pool zurück – Mihai

+0

@wassgren Ich glaube nicht, es ist ein Zuschuss Privileg Problem ist, da Wordpress – Petru

Antwort