【问题标题】:In Javascript, how would I connect to a MySQL database that is inside a docker? [duplicate]在 Javascript 中,我将如何连接到 docker 内的 MySQL 数据库? [复制]
【发布时间】:2021-01-02 09:19:08
【问题描述】:

我已经编写了脚本以使用 Javascript 连接到 mysql 数据库。我做过的一个是:

function connectToSQL() {
    return new Promise((resolve,reject)=>{
        try {
            var connection = mysql.createConnection({
                host:"0.0.0.0",
                user: "username",
                password: "password",
                database: "mydb"
            });
        } catch(e) {
            reject(e);
        }
        if(!connection) {
            reject(new Error("No Connection"));
        }
        connection.connect(function(err) {
            if(err) reject(err);
            resolve(connection);
        });
    });
}

但是,这是一个独立的 Mysql,而不是在 docker 容器内,我正在连接。在我的 Docker 里面,可以找到 Sql 容器:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                     NAMES
fcd8a5277248        mysql:5.6           "docker-entrypoint..."   2 weeks ago         Up 2 weeks          0.0.0.0:3306->3306/tcp                                                    db-mysql

如何编写一个 JS 脚本来运行查询?

【问题讨论】:

    标签: javascript mysql docker


    【解决方案1】:
    PORTS
    0.0.0.0:3306->3306/tcp
    

    这意味着您希望在端口 3306 上侦听计算机上的每个网络接口,并将那里的所有流量重定向到 Docker 容器内部(也在端口 3306 上)。

    这意味着连接到127.0.0.1:3306 将导致连接到[the Docker instance]:3306

    请注意,对于 MySQL 的连接驱动程序,有时 'localhost' 和 '127.0.0.1' 不是同一个东西——这取决于你使用的是什么——所以使用 IP 来连接。

    【讨论】:

    • 那么在 JS 脚本中,我该怎么做呢,@rickn?谢谢!
    猜你喜欢
    • 2018-11-30
    • 2019-11-10
    • 2019-02-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2019-05-26
    相关资源
    最近更新 更多