【问题标题】:Can't Connect to remote Mysql server in Rails, but I can connect to it with command line client无法连接到 Rails 中的远程 Mysql 服务器,但我可以使用命令行客户端连接到它
【发布时间】:2013-06-17 04:32:50
【问题描述】:

我有一个远程 Mysql 服务器,并且远程获得了所有权限。这是我从本地计算机远程登录后“显示授权”的输出:

+-------------------------------------------------------------------------------------------------------------+
| Grants for user@%                                                                                            |
+-------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%' IDENTIFIED BY PASSWORD '*B25E737EE2274D7343BF9DCDF6CAF8DB2EAC17E1' |
+-------------------------------------------------------------------------------------------------------------+

但是,当我尝试在本地 rails 环境中使用此服务器时,它会显示:

/home/myuser/.rvm/gems/ruby-1.9.3-p429@my_project/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in connect': Access denied for user 'mysqluser'@'localhost' (using password: YES) (Mysql2::Error) from /home/myuser/.rvm/gems/ruby-1.9.3-p429@my_project/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:ininitialize'

这是我的 database.yml:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  username: mysqluser
  password: password
  hostname: 192.10.23.114
  database: db_name
  pool: 5
  timeout: 5000

我不明白的是为什么 Mysql 认为我的用户来自“localhost”,而我实际上是 使用远程访问?你们对此有什么想法吗?非常感谢。

【问题讨论】:

    标签: mysql ruby-on-rails mysql2


    【解决方案1】:

    hostname 的使用不正确。

    应该是:

    host: 192.10.23.114

    【讨论】:

    • 我最初发布了相同的答案,但我认为这是不正确的。 mysql2 gem 的客户端适配器并不关心您是否传递了:host:hostname 选项。 github.com/brianmario/mysql2/blob/master/lib/mysql2/…
    • 我尝试了西蒙的解决方案,它奏效了!正如 Deefour 所说,我认为 mysql2 平等地接受 :host 和 :hostname ,但事实证明它没有。 :hostname 之后的任何 IP 地址都被忽略,mysql2 使用“localhost”代替。
    • Deefour,我现在明白了。 Mysql2 的最新标签是 0.3.11,这是我正在使用的。在这个版本中,client.rb 是这样的:github.com/brianmario/mysql2/blob/…
    【解决方案2】:

    陀,

    此外,您需要确保已安装 mysql2 gem。更多配置详情请查看:http://guides.rubyonrails.org/getting_started.html#configuring-a-database

    【讨论】:

    • 谢谢喵喵-。我安装了 mysql2 gem。事实上,如果我没有mysql2,它不会给我一个错误。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 2012-10-15
    相关资源
    最近更新 更多