我有一个共享的服务器计划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 **/
这永远不会成功,也不会创建任何表。
我想念什么?
谢谢大家。
答案 0 :(得分:2)
不确定我是否完全了解,但是可以将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连接 包”
如果这不可行-请评论我,我将删除。