Node.js MySQL:解决连接时的“ECONNREFUSED”错误
尝试通过 Node.js 连接到 MySQL 服务器时,遇到“ECONNREFUSED”错误可能会令人困惑,特别是当同一台机器上的 PHP/Apache 服务器在没有任何服务的情况下运行时问题。
让我们调查此错误的原因并提供成功的解决方案。
挑战
在提供的代码片段中, MySQL 主机被定义为“localhost”,而机器上的 MySQL 服务器侦听 Unix 套接字“/var/run/mysqld/mysqld.sock”而不是标准的 TCP 端口。当 Node.js 应用程序尝试使用 TCP 连接时,这种不匹配会导致“ECONNREFUSED”错误。
解决方案
要解决此问题,我们需要修改连接选项指定 Unix 套接字路径而不是 TCP 端口。这可以通过将以下行添加到连接选项来实现:
port: '/var/run/mysqld/mysqld.sock'
更新的代码
var mysql_link = { host: 'localhost', port: '/var/run/mysqld/mysqld.sock', // Modified to specify Unix socket path. database: 'nodetest', user: 'root', password: 'xxx' };
结论
通过指定正确的连接选项,我们可以确保 Node.js 应用程序能够与MySQL 服务器并继续无缝运行。验证 MySQL 服务器的配置并使用适当的连接参数非常重要,以避免将来遇到此类错误。
以上是Node.js MySQL ECONNREFUSED 错误:如何使用 Unix 套接字进行连接?的详细内容。更多信息请关注PHP中文网其他相关文章!