Docker mysql host not privileged

2019-06-20 17:07发布

I am trying to configure a nodejs container to connect to a mysql database.

My code looks like this:

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

I am using the standard mysql container.

I am using fig for starting the containers. fig.yml looks something like:

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

Every time i try to connect i get the following error:

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

Any idea what I am doing wrong? I have played around with wordpress and it seems to connect to the same mysql db without any problems.

Thx!

Edit So, I have found the answer in the end. The problem was indeed a privilege issue. I ran the following command:

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

And I was able to access the database.

1条回答
何必那么认真
2楼-- · 2019-06-20 17:47

I use the drakedroid/mysql-with-data (https://registry.hub.docker.com/u/drakedroid/mysql-with-data/) image. It extends the default image, but adds more functionality.

查看更多
登录 后发表回答