Skip to content

Commit

Permalink
Merge pull request #48433 from jenshenny/handle-dbaccess-denied
Browse files Browse the repository at this point in the history
Handle `ER_DBACCESS_DENIED_ERROR` in mysql2 adapter
  • Loading branch information
eileencodes committed Jun 9, 2023
2 parents 6be41ad + b202d5b commit fdad62b
Showing 1 changed file with 9 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ def mysql2_connection(config)
module ConnectionAdapters
# = Active Record MySQL2 Adapter
class Mysql2Adapter < AbstractMysqlAdapter
ER_BAD_DB_ERROR = 1049
ER_ACCESS_DENIED_ERROR = 1045
ER_CONN_HOST_ERROR = 2003
ER_UNKNOWN_HOST_ERROR = 2005
ER_BAD_DB_ERROR = 1049
ER_DBACCESS_DENIED_ERROR = 1044
ER_ACCESS_DENIED_ERROR = 1045
ER_CONN_HOST_ERROR = 2003
ER_UNKNOWN_HOST_ERROR = 2005

ADAPTER_NAME = "Mysql2"

Expand All @@ -34,11 +35,12 @@ class << self
def new_client(config)
::Mysql2::Client.new(config)
rescue ::Mysql2::Error => error
if error.error_number == ConnectionAdapters::Mysql2Adapter::ER_BAD_DB_ERROR
case error.error_number
when ER_BAD_DB_ERROR
raise ActiveRecord::NoDatabaseError.db_error(config[:database])
elsif error.error_number == ConnectionAdapters::Mysql2Adapter::ER_ACCESS_DENIED_ERROR
when ER_DBACCESS_DENIED_ERROR, ER_ACCESS_DENIED_ERROR
raise ActiveRecord::DatabaseConnectionError.username_error(config[:username])
elsif [ConnectionAdapters::Mysql2Adapter::ER_CONN_HOST_ERROR, ConnectionAdapters::Mysql2Adapter::ER_UNKNOWN_HOST_ERROR].include?(error.error_number)
when ER_CONN_HOST_ERROR, ER_UNKNOWN_HOST_ERROR
raise ActiveRecord::DatabaseConnectionError.hostname_error(config[:host])
else
raise ActiveRecord::ConnectionNotEstablished, error.message
Expand Down

0 comments on commit fdad62b

Please sign in to comment.