我正在使用ActiveRecord在thor脚本中创建与数据库的连接。我在这种情况下使用的适配器是mysql2。我想在我的代码中添加一些救援块,以便向用户提供一些特定的错误消息。
当我关闭我的localhost上的mysql服务器并尝试连接(使用establish_connection)时,我收到以下错误(正如预期的那样)
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)
为什么我没有收到ActiveRecord :: ConnectionNotEstablished错误而不是Mysql2 :: Error?我问的原因是Mysql2没有特定的错误类型(基于https://github.com/brianmario/mysql2/blob/master/lib/mysql2/error.rb)而活动记录没有(http://api.rubyonrails.org/files/activerecord/lib/active_record/errors_rb.html)
使用ruby 1.9.3和activerecord 3.2.8 with mysql2 0.3.11
谢谢!
答案 0 :(得分:0)
找到mysql套接字似乎是一个问题
此链接可以帮助您解决这个问题,
Ruby on Rails 3 Can't connect to local MySQL server through socket '/tmp/mysql.sock' on OSX