docker mysql权限,Docker的mysql主机没有权限

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.

解决方案

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值