无法从node.js服务器连接到本地主机数据库

尝试连接到我的本地主机数据库时遇到了很多麻烦。 我试过使用mysql和mysql-simple节点模块,但在这两种情况下,我只是无法得到它连接。

以下是我用'mysql'模块的内容:

var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', port : '8000', user : 'uber', password : 'pass', }); connection.connect(function(err) { if (err) throw err; console.log('Connection Successful'); }); connection.query('USE someDB', function(err) { if (err) throw err; console.log('Query Successful'); }); 

在这里,我使用了'mysql-simple'模块:

 var database = require('mysql-simple'); database.init('uber', 'pass', 'mysql', 'localhost', 8000); database.querySingle('SELECT Host FROM user', function(err, results) { if (err) { console.log('error fetching some active users: ' + err); return; } log('Query Successful'); for (var i = 0; i < results.length; i++) console.log('got active user ' + results[i]); } 

在这两种情况下,当我运行我的node.js服务器时,它从不logging它的连接。 我已经尝试用127.0.01replace本地主机,并创build一个新的用户,以确保密码是正确的,但无济于事。 为什么不连接?

谢谢

closuresnetworking的可能性很大,这意味着mysql服务器通过UNIX套接字与客户端进行通信,而不是通过TCP / IP进行通信。 你可以检查出运行mysql客户端并运行“status”命令。 如果你在那里看到端口号,那么你的mysql服务器通过TCP / IP进行通信,否则你会看到类似“socket pathname …”的东西,获取path名并将其提供给node.js连接参数,例如

socketPathname:'/ opt / lampp / var / …',…

https://github.com/felixge/node-mysql页面查找(search“socketPathname”&#xFF09;

希望,那是你的问题。

改变这一点

 database.init('uber', 'pass', 'mysql', 'localhost', 8000); 

 database.init('uber', 'pass', 'mysql', 'localhost', 3306); 

你应该通过

试试这个代码是为我工作

 var mysql = require('mysql'); var connection = mysql.createConnection( { host : 'localhost', user : 'root', password : '', database : 'urdatabase', } ); connection.connect(); query = connection.query("SELECT * FROM UrTable;"); query .on('error', function(err) { console.log( err ); }) .on('result', function( data ) { socket.emit('YourData',data); }); 

我希望这会对你有所帮助

确保MySQL和express在同一个端口上运行。 我从XAMPP捆绑了MySQL,在端口3036上运行。在将app.listen设置为3036时,我的代码工作。 最后!

你应该使用mysql_config来显示套接字的path。
这是我的MAC上的一个样本

 QuyLes-MacBook-Pro:freelancer quyle$ mysql_config Usage: /Applications/MAMP/Library/bin/mysql_config [OPTIONS] Options: --cflags [-I/Applications/MAMP/Library/include -fno-omit-frame-pointer -g -DNDEBUG] --include [-I/Applications/MAMP/Library/include] --libs [-L/Applications/MAMP/Library/lib -lmysqlclient -lz] --libs_r [-L/Applications/MAMP/Library/lib -lmysqlclient_r -lz] --plugindir [/Applications/MAMP/Library/lib/plugin] --socket [/Applications/MAMP/tmp/mysql/mysql.sock] --port [0] --version [5.5.42] --libmysqld-libs [-L/Applications/MAMP/Library/lib -lmysqld] --variable=VAR VAR is one of: pkgincludedir [/Applications/MAMP/Library/include] pkglibdir [/Applications/MAMP/Library/lib] plugindir [/Applications/MAMP/Library/lib/plugin] 

然后,为yourMysqlConnection添encryption钥socketPath。
在我的样品上的波纹pipe

 MysqlServer: { adapter: 'sails-mysql', host: 'localhost', user: 'root', //optional password: 'root', //optional database: 'nodejs', //optional, socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock' },