如何连接到远程服务器上的数据库

epfja78i  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(404)

我有一个服务器,my-website.com,在一个共享的hodting计划上。我在服务器上创建了一个数据库。在webadmin中,数据库详细信息如下:
来自phpmyadmin:
服务器:localhost:3306
数据库服务器
服务器:通过unix套接字的本地主机
服务器类型:percona服务器
服务器版本:5.6.39-83.1-percona server(gpl),版本83.1,修订版da5a1c2923f
协议版本:10
用户:user@localhost
服务器字符集:utf-8 unicode(utf8)
我尝试通过节点连接到它:

const express = require('express')
const mysql = require('mysql')

const PORT = process.env.PORT || 5000

const app = express();
app.use(express.json());

const courses = [];

/**DB**/

app.get('/api/db_connect', function (req, res) {

    var myConStatus = "undef  conn";

    var con = mysql.createConnection({
        host: "191.181.181.81",  // FAKE
        Port: "3306",
        user: "user@localhost",
        database: "user_test_db",
        password: "password123"
    });

    con.connect(function (err) {
        myConStatus = "Connecting to db";
        if (err) {
            myConStatus = "ERR Conn";
            throw err;
        }

        myConStatus = "Success Connection";
    });

    var sql = "CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))";
    con.query(sql, function (err, result) {
        myConStatus = "Creating table";

        if (err) {
            myConStatus = "ERR DB TABLE CREATE";
            throw err;
        }
        myConStatus = "Table created";
    });

    res.send(myConStatus);

});

/**END DB**/

这永远不会成功,也不会创建任何表。
我错过了什么?

kqlmhetl

kqlmhetl1#

不确定我是否完全理解,但mysql可以配置为从本地进程或远程进程进行连接。如果您尝试远程连接到为本地配置的服务器,则该服务器将不会连接。
你没有说你是否有连接错误。
您可以为配置连接 standard TCP/IP 或者 ssh TCP/IP 相对于 local socket/pipe -也许你已经做到了。
看到这里了吗https://www.percona.com/doc/percona-xtrabackup/latest/howtos/enabling_tcp.html 还有这句话
“大多数linux发行版在默认情况下不允许在mysql或percona服务器包中接受来自外部的tcp/ip连接”
如果这是脱节-只要评论我,我会删除。

相关问题