Я пытаюсь настроить контейнер 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'
И я смог получить доступ к базе данных.
Может ли это помочь? (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
Что представляет собой ваша версия mysql? «Общее» - это зарезервированное слово в mysql 5.6, используйте обратные тики в вашем пуле. – Mihai
@wassgren. Я не думаю, что это проблема с правами доступа, поскольку wordpress подключается к одной базе данных без дополнительных привилегий. – Petru