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

时间:2018-09-02 02:23:29

标签: node.js database mysqli

我有一个共享的服务器计划my-website.com服务器。我在服务器上创建了一个数据库。在Webadmin中,数据库详细信息为:

来自phpMyAdmin:

  

服务器:localhost:3306


  

数据库服务器
  服务器:通过UNIX套接字的Localhost
  服务器类型:Percona服务器
  服务器版本:5.6.39-83.1-Percona服务器(GPL),版本83.1,修订版da5a1c2923f
  协议版本:10
  用户:user @ localhost
  服务器字符集:UTF-8 Unicode(utf8)

我尝试通过node连接到它:

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 **/

这永远不会成功,也不会创建任何表。

我想念什么?

谢谢大家。

1 个答案:

答案 0 :(得分:2)

不确定我是否完全了解,但是可以将mySQL配置为来自本地进程或远程的连接。如果您尝试远程连接到配置为本地的服务器,它将无法连接。

您没有说是否出现连接错误。

您可以为standard TCP/IPssh TCP/IP(而不是local socket/pipe)配置连接-也许您已经完成了。

请参见此处https://www.percona.com/doc/percona-xtrabackup/LATEST/howtos/enabling_tcp.html和此报价

  

“默认情况下,大多数Linux发行版都不启用接受   来自其MySQL或Percona服务器外部的TCP / IP连接   包”

如果这不可行-请评论我,我将删除。