MySQL 可以远程连接但不能本地连接

标签 mysql node.js

这是一个奇怪的问题,我不确定发生了什么。我在运行 Ubuntu 10.04 LTS 的 linux 机器上安装了 MySQL。我可以通过 SSH mysql -p 访问 mysql 并以这种方式执行我的所有命令。我添加了一个用户,我可以使用 AddedUser 从我的机器远程连接,但不能从本地机器连接。这对我来说毫无意义......

SELECT host, user FROM mysql.user 产量:

+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | AddedUser        |
| 127.0.0.1 | root             |
| li241-255 | root             |
| localhost | debian-sys-maint |
| localhost | root             |
+-----------+------------------+

问题是我正在这台机器上使用 Node.js 进行开发,我无法使用相同的用户名从服务器进行本地连接。我试过 FLUSH PRIVILEGES 但这似乎没有效果。

我知道它不是 Node.js,因为我在另一个数据库上使用相同的代码并且它在那个环境中工作。

编辑

这是 Node 给我的错误。

node.js:50
    throw e; // process.nextTick error, or 'error' event on first tick
    ^
Error: ECONNREFUSED, Connection refused
    at Stream._onConnect (net.js:687:18)
    at IOWatcher.onWritable [as callback] (net.js:284:12)

编辑2

据我所知,我拥有正确的端口和服务器。我的 /etc/mysql/my.cnf 包含这个:

port            = 3306
socket          = /var/run/mysqld/mysqld.sock

我的 MySQL 对象包含:

{ host: 'localhost',
  port: 3306,
  user: 'removed',
  password: 'removed',
  database: '',
  typeCast: true,
  flags: 260047,
  maxPacketSize: 16777216,
  charsetNumber: 192,
  debug: false,
  ending: false,
  connected: false,
  _greeting: null,
  _queue: [],
  _connection: null,
  _parser: null,
  server: 'ExternalIpAddress' }

可能有用?

netstat -ln | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     1016418  /var/run/mysqld/mysqld.sock

最佳答案

Connection Refused正在 TCP/IP 协议(protocol)级别发出信号,这意味着您的本地连接尝试使用了错误的主机名和/或(更有可能)端口号。

编辑:这是另一种(公认的低概率)可能性:

  1. 你有两个 hostserver在 JS 对象中定义,在这种情况下,node.js 可能优先于 server .
  2. 如果externalIPaddress位于 NAT 防火墙的另一侧,防火墙可能(实际上应该)配置为丢弃到端口 3306 的传入流量。
  3. 当您尝试连接时,您的数据包首先被路由到 NAT 防火墙并在那里被丢弃。

验证同时拥有 serverhost设置不会导致这个问题。

关于MySQL 可以远程连接但不能本地连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523459/

相关文章:

mysql - MySQL 中何时使用单引号、双引号和反引号

node.js - 在 Express 路由器中使用 mongoDB

node.js - OpenShift 上出现 Mongoose 验证错误,但本地版本没有出现此错误

mysql - SQL CONCAT 转 JSON

php - 数据库中的多个条目

php - 如何在 PHP 中获取用户输入日期以在 PostgreSQL 语句的 where 子句中使用?

php - 为什么我的 PHP 和 MySQL 网站突然变得很慢?

node.js - 您可以为您的组织托管一个私有(private)存储库以与 npm 一起使用吗?

node.js - Jasmine 测试相互依赖

ruby - 我可以在 Heroku 应用程序中使用两种语言吗?