Skip to content

In the mysql2 gem version 0.5.7, the password in query_options becomes empty, preventing DatabaseRewinder.clean_all from connecting. #96

@naitoh

Description

@naitoh
(ruby) DatabaseRewinder.clean_all
eval error: Access denied for user 'XXXXX'@'172.18.0.10' (using password: NO)
  /workspace/vendor/bundle/ruby/3.4.0/gems/mysql2-0.5.7/lib/mysql2/client.rb:92:in 'Mysql2::Client#connect'
  /workspace/vendor/bundle/ruby/3.4.0/gems/mysql2-0.5.7/lib/mysql2/client.rb:92:in 'Mysql2::Client#initialize'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/multiple_statements_executor.rb:29:in 'Class#new'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/multiple_statements_executor.rb:29:in 'execute_multiple'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/cleaner.rb:67:in 'DatabaseRewinder::Cleaner#delete_all'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/cleaner.rb:46:in 'block in DatabaseRewinder::Cleaner#clean_all'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/dummy_model.rb:8:in 'DatabaseRewinder::DummyModel.with_temporary_connection'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder/cleaner.rb:45:in 'DatabaseRewinder::Cleaner#clean_all'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder.rb:74:in 'block in DatabaseRewinder.clean_all'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder.rb:74:in 'Array#each'
  /workspace/vendor/bundle/ruby/3.4.0/gems/database_rewinder-1.1.0/lib/database_rewinder.rb:74:in 'DatabaseRewinder.clean_all'
  (rdbg)//workspace/spec/support/initializers/database_rewinder.rb:1:in 'block (2 levels) in <main>'

client = Mysql2::Client.new query_options

$ bundle exec gem list mysql2

*** LOCAL GEMS ***

mysql2 (0.5.6)

$ bundle exec irb -r mysql2
irb(main):001> Mysql2::Client.new({database: "XXXX", username: "XXXX", password: "XXXX", host: "XXXX"}).query_options
irb(main):002> 
=> 
{as: :hash,
 async: false,
 cast_booleans: false,
 symbolize_keys: false,
 database_timezone: :local,
 application_timezone: nil,
 cache_rows: true,
 connect_flags: 2148573700,
 cast: true,
 default_file: nil,
 default_group: nil,
 database: "XXXX",
 username: "XXXX",
 password: "XXXX",
 host: "XXXX"}
$ bundle exec gem list mysql2

*** LOCAL GEMS ***

mysql2 (0.5.7)
$ bundle exec irb -r mysql2
irb(main):001> Mysql2::Client.new({database: "XXXX", username: "XXXX", password: "XXXX", host: "XXXX"}).query_options
irb(main):002> 
=> 
{as: :hash,
 async: false,
 cast_booleans: false,
 symbolize_keys: false,
 database_timezone: :local,
 application_timezone: nil,
 cache_rows: true,
 connect_flags: 2148573700,
 cast: true,
 default_file: nil,
 default_group: nil,
 database: "XXXX",
 username: "XXXX",
 host: "XXXX"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions