Mysql2::Error: MySQL 客户端未连接

问题描述

我遇到了一个奇怪的情况。目前,我正在对 rails 进行升级,并将其从 4.2 升级到 6.0,经过大量更改后进展顺利。现在,当我运行请求 Rspec 时,出现错误 MysqL2::Error: MysqL 客户端未连接

注意 - 我已经在使用 DatabaseCleaner 并且 use_transactional_fixtures 是假的

导轨 (6.0.3.7 rspec-rails (5.0.1) 水豚 (3.35.3) database_cleaner (2.0.1) MysqL2 (0.5.3)

回溯

 Got 0 failures and 2 other errors:

 9.1) Failure/Error: category = Category.where(name: name).first_or_create
      
      MysqL2::Error:
        MysqL client is not connected
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:44:in `block in method_missing'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:63:in `block (2 levels) in with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `handle_interrupt'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `block in with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `handle_interrupt'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:14:in `with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:43:in `method_missing'
      # ./spec/requests/videos_spec.rb:12:in `block (3 levels) in <top (required)>'
      # ./spec/requests/videos_spec.rb:11:in `each'
      # ./spec/requests/videos_spec.rb:11:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
      # ./spec/rails_helper.rb:99:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
      # ./spec/support/puffing_billy.rb:107:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

 9.2) Failure/Error: DatabaseCleaner.clean
      
      ActiveRecord::StatementInvalid:
        MysqL2::Error: MysqL client is not connected
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/MysqL2-0.5.3/lib/MysqL2/client.rb:131:in `_query'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/MysqL2-0.5.3/lib/MysqL2/client.rb:131:in `block in query'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/MysqL2-0.5.3/lib/MysqL2/client.rb:130:in `handle_interrupt'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/MysqL2-0.5.3/lib/MysqL2/client.rb:130:in `query'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:44:in `block in method_missing'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:63:in `block (2 levels) in with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `handle_interrupt'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:62:in `block in with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `handle_interrupt'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool.rb:59:in `with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:14:in `with'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/connection_pool-2.2.5/lib/connection_pool/wrapper.rb:43:in `method_missing'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/truncation.rb:21:in `clean'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:28:in `block in clean'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:28:in `each'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:28:in `clean'
      # ./spec/support/database_cleaner.rb:52:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
      # ./spec/rails_helper.rb:99:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/webmock-3.13.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
      # ./spec/support/puffing_billy.rb:107:in `block (2 levels) in <top (required)>'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
      # /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
      # ------------------
      # --- Caused by: ---
      # MysqL2::Error:
      #   MysqL client is not connected
      #   /Users/sudarshandhokale/.rvm/gems/ruby-2.7.3/gems/MysqL2-0.5.3/lib/MysqL2/client.rb:131:in `_query'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)