【发布时间】:2017-04-13 14:42:18
【问题描述】:
使用 sequel pro 我创建了一个名为 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
【问题讨论】:
-
检查回调中的
err参数,看看哪里出了问题。从您的代码中我猜,在实际查询通过之前,连接已关闭。 -
@Sirko 更新了问题
-
您是否验证过,您的数据库实际上正在运行(在该端口上)?
-
如果您的数据库在端口 8889 上运行,您应该将其作为附加参数传递给连接。默认的 mysql 端口是 3306,您的应用程序现在找不到任何服务器。作为替代方案,您可以直接传递套接字,如下所示:stackoverflow.com/a/26465986/1169798
标签: javascript mysql node.js