mysql - Docker mysql 主机没有特权

标签 mysql node.js docker fig

我正在尝试配置一个 nodejs 容器以连接到 mysql 数据库。

我的代码是这样的:

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

我使用的是标准 mysql容器。

我正在使用无花果来启动容器。 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 数据库。

谢谢!

编辑 所以,我最终找到了答案。问题确实是特权问题。我运行了以下命令:

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

而且我能够访问数据库。

最佳答案

我使用 drakedroid/mysql-with-data ( https://registry.hub.docker.com/u/drakedroid/mysql-with-data/ ) 图像。它扩展了默认图像,但增加了更多功能。

关于mysql - Docker mysql 主机没有特权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868965/

相关文章:

php - 如何使用数组中的值获取查询结果?

php - 在 PHP 中计算事件非事件删除结果

php - Angular 6/PHP 解析期间 Http 失败

image - node.js 图像压缩

amazon-web-services - 在使用AWS ECS和ECR时,应如何将源代码安装到Docker容器?

MySQL 查询 - 在 UPDATE 中使用 SELECT

node.js - NodeJs 应用程序对象反射,这是空的

node.js - Node和Express发送json

amazon-web-services - TeamCity:将 docker 镜像推送到 AWS ECR

java - 无法使用Flink-nifi连接器从Nifi输出端口读取数据