2015-01-09 1 views
5

Я пытаюсь настроить контейнер nodejs для подключения к базе данных mysql.Docker mysql host не является привилегированным

Мой код выглядит следующим образом:

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

Я использую стандартный mysql контейнер.

Я использую fig для запуска контейнеров. fig.yml выглядит что-то вроде:

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: ... 

Каждый раз, когда я пытаюсь соединить я получаю следующее сообщение об ошибке:

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

Любая идея, что я делаю неправильно? Я играл с wordpress и, похоже, без проблем столкнулся с одним и тем же mysql db.

Thx!

Редактировать Итак, я нашел ответ в конце. Проблема была действительно привилегией. Я выполнил следующую команду:

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

И я смог получить доступ к базе данных.

+1

Может ли это помочь? (Http://stackoverflow.com/questions/19943615/connect-to-remote-mysql-database)? Или возможно [это] (http://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server)? – wassgren

+0

Что представляет собой ваша версия mysql? «Общее» - это зарезервированное слово в mysql 5.6, используйте обратные тики в вашем пуле. – Mihai

+0

@wassgren. Я не думаю, что это проблема с правами доступа, поскольку wordpress подключается к одной базе данных без дополнительных привилегий. – Petru

ответ

Смежные вопросы