无法从节点Js(主机中)连接到MySql容器

无法从节点Js(主机中)连接到MySql容器,mysql,node.js,docker,Mysql,Node.js,Docker,我对Node非常陌生,我试着从一本书中找到一些例子 当我尝试从NodeJS连接到Mysql容器时,出现以下错误: Access denied for user 'root'@'172.17.0.1' MySql数据库位于使用以下命令创建的Docker容器中: > docker run --detach --name=test-mysql -p 3306:3306 --env="MYSQL_ROOT_PASSWORD=root" mysql 这是我的节点程序中的代码 'use stri

我对Node非常陌生,我试着从一本书中找到一些例子

当我尝试从NodeJS连接到Mysql容器时,出现以下错误:

Access denied for user 'root'@'172.17.0.1'
MySql数据库位于使用以下命令创建的Docker容器中:

> docker run --detach --name=test-mysql -p 3306:3306 
--env="MYSQL_ROOT_PASSWORD=root" mysql
这是我的节点程序中的代码

'use strict';
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'root'
});
connection.query(
    'SELECT "foo" AS first_field, "bar" AS second_field',
    function(err, results, fields) {
        if (err){
            console.log(err);
        }else{
            console.log(results);
        }
        connection.end();
    }
);
我可以使用

>mysql -u root -h 127.0.0.1 -p
我还可以使用-h172.17.0.2和-h172.17.0.1

如果我检查我的user@hostMysql内部

mysql> select user();
+-----------------+
| user()          |
+-----------------+
| root@172.17.0.1 |
+-----------------+
1 row in set (0.00 sec)

mysql> show grants for root;
+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
所以不知何故,node在连接MySql时遇到了问题,但似乎一切都正常

谢谢

注意:已解决!!升级mysql模块的包版本修复了该问题。以前的版本是“~2.0.0”

My package.json:

{
    "devDependencies":  {
        "jasmine-node": "",
        "mysql": "~2.1.x"
    }
}

尝试使用数据库名称我尝试使用数据库名称,但仍然得到相同的错误:(然后我认为问题在PrivilegesSolved中!!问题在mysql模块版本中!