【问题标题】:Lost connection to MySQL server at 'reading initial communication packet' for remote mysql server在远程 mysql 服务器的“读取初始通信数据包”时失去与 MySQL 服务器的连接
【发布时间】:2014-01-15 01:41:55
【问题描述】:

我正在尝试使用 rake 任务访问远程 mysql 数据库。我在这里发布我的活动记录连接逻辑

client = ActiveRecord::Base.establish_connection(
:host => "server_ip",
:port => 22,
:adapter  => "mysql2",
:pool => 5,
:database => "database_name",
:username => "username",
:password => "password"
)

我正在使用它访问它

client.connection.execute("SELECT * FROM users")

但每次都会出现如下错误

rake aborted!
Lost connection to MySQL server at 'reading initial communication packet', system error: 0

我有什么遗漏的吗?请建议我正确的方向

【问题讨论】:

    标签: ruby-on-rails rails-activerecord rake-task dbconnection mysqlconnection


    【解决方案1】:

    试试下面的,

    确保 MySQL 使用相同的凭据从控制台连接

    确保它在 irb/rails 控制台中连接

    如果没有,请在您提到的配置中添加端口号。 MySQL 应该在该端口中运行。

    在 MySQL 中检查用户名和 IP 的访问权限

    【讨论】:

    • 它提供了一些活动记录对象,例如 #<:connectionadapters::connectionpool:0x00000...>
    • 访问权限非常完美,因为我可以通过浏览器访问远程数据库
    • 在此添加端口号会给我这样的错误“Mysql2::Error: Lost connection to MySQL server at 'reading initial communication packet', system error: 0”
    • 检查host.allow和host.deny stackoverflow.com/questions/961928/…
    猜你喜欢
    • 2012-06-25
    • 1970-01-01
    • 2011-10-09
    • 2011-11-23
    • 2015-06-29
    • 2011-07-07
    • 2011-08-10
    相关资源
    最近更新 更多