使用续集专业版我创建了一个名为test
的数据库。它有一个名为users
的表。在该表中有一个用户 - > id=1, name=Phantom
。
I have installed the mysql
node module
当我运行下面的代码时,我得到The solution is: undefined
。
有人可以建议我如何连接数据库并向用户显示吗?
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost:8889',
user : 'root',
password : 'root',
database : 'test'
});
connection.connect();
connection.query('SELECT * from users', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows);
});
connection.end();
它显示以下错误:
错误:连接ETIMEDOUT 在Connection._handleConnectTimeout(/Users/fitz035/Desktop/sony/presave/node_modules/mysql/lib/Connection.js:425:13)
我正在通过MAMP运行数据库。这些是数据库设置:
Host: localhost
Port: 8889
User: root
Password: root
Socket: /Applications/MAMP/tmp/mysql/mysql.sock
答案 0 :(得分:2)
节点是异步的,因此在查询回调之前可能会发生connection.end()
。另外,指定Mysql在非标准时运行的端口。
试试这个:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'test',
port: 8889
});
connection.connect();
connection.query('SELECT * from users', function(err, rows, fields) {
if(err) console.log(err);
console.log('The solution is: ', rows);
connection.end();
});
答案 1 :(得分:1)
如果在配置了防火墙的 VPS 上,您需要通过 SSH 将您的 IP 列入白名单。否则,即使通过 cPanel 的 RemoteMYSQl 添加后,它仍然会抛出完全高于错误
# csf -a [RemoteIP]
# csf -r
您也可以通过 WHM 快速完成。刚刚发布,因为它可能对某人有所帮助。