【问题标题】:Access denied on mysql database using openshift使用 openshift 访问 mysql 数据库被拒绝
【发布时间】:2014-02-25 01:02:02
【问题描述】:

我正在尝试将我的 nodejs 应用程序部署到 openshift,但我在与 mysql 的通信方面遇到了一个特别烦人的问题。

我可以使用本地客户端通过端口转发(本地 127.0.0.1:3307 -> 127.11.255.130:3306)访问 mysql 数据库,并且我没有填充数据库。
然后我尝试使用我的 node.js 脚本(在 openshift 中的同一域上运行)访问数据库:

  var connection  = mysql.createConnection({
    host     : '127.11.255.130',
    user     : 'usernameissued',
    password : 'passwordissued',
    database : 'cpapi'
  });

  connection.connect(); // blows up here
  connection.query("SELECT id, firstname, lastname from users", function(err, rows, fields) {
      if (err) throw err;

  });
  connection.end();

抛出的异常是:

ER_ACCESS_DENIED_ERROR: 用户 'usernameissued'@'127.11.255.130' 的访问被拒绝(使用密码:YES)

我什至更改了该用户授予完全访问权限的所有权限,但它似乎仍然不起作用。

任何想法将不胜感激。

【问题讨论】:

    标签: mysql node.js openshift


    【解决方案1】:

    我(过去一小时)遇到了同样的问题,并找到了一个半解决方案 - 创建密码为空的用户。我可以推测问题在于“mysql”模块如何散列密码。我不知道问题是否与“mysql”模块的最新版本有关——在我的本地机器上总是使用空密码:)

    【讨论】:

    • 对此非常感谢,非常感谢您的建议。也感谢其他所有人的帮助。
    【解决方案2】:

    如果您还没有在mysql中输入任何数据,我会删除mysql墨盒并重新安装它。如果您已输入数据,请先执行 mysqldump,然后移除/重新安装 mysql 墨盒。你用的是什么版本的mysql?

    【讨论】:

    • 感谢您的回复,不幸的是我已经尝试过了,但没有任何乐趣。我使用的是 5.1 版。
    • 这是在扩展的应用程序上吗?当您说您可以通过端口转发访问它时,您是否使用了相同的代码,只是更改了它试图访问的端口? (3306 -> 3307)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多