From 369191cc84b8e81fb5a3dcb4be25412dccd4eb9b Mon Sep 17 00:00:00 2001 From: lidezhu Date: Fri, 17 May 2024 12:35:35 +0800 Subject: [PATCH 1/2] accept access denied error when query tidb_version --- cdc/sink/dmlsink/txn/mysql/mysql_test.go | 5 +++-- pkg/sink/mysql/db_helper.go | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cdc/sink/dmlsink/txn/mysql/mysql_test.go b/cdc/sink/dmlsink/txn/mysql/mysql_test.go index c53737abbfa..1965da89f54 100644 --- a/cdc/sink/dmlsink/txn/mysql/mysql_test.go +++ b/cdc/sink/dmlsink/txn/mysql/mysql_test.go @@ -91,9 +91,10 @@ func newTestMockDB(t *testing.T) (db *sql.DB, mock sqlmock.Sqlmock) { Number: 1305, Message: "FUNCTION test.tidb_version does not exist", }) + // mock a differnt possible error for the second query mock.ExpectQuery("select tidb_version()").WillReturnError(&dmysql.MySQLError{ - Number: 1305, - Message: "FUNCTION test.tidb_version does not exist", + Number: 1044, + Message: "Access denied for user 'cdc'@'%' to database 'information_schema'", }) require.Nil(t, err) return diff --git a/pkg/sink/mysql/db_helper.go b/pkg/sink/mysql/db_helper.go index da66ff4efbf..2abec6d318b 100644 --- a/pkg/sink/mysql/db_helper.go +++ b/pkg/sink/mysql/db_helper.go @@ -320,7 +320,7 @@ func CheckIsTiDB(ctx context.Context, db *sql.DB) (bool, error) { log.Error("check tidb version error", zap.Error(err)) // downstream is not TiDB, do nothing if mysqlErr, ok := errors.Cause(err).(*dmysql.MySQLError); ok && (mysqlErr.Number == tmysql.ErrNoDB || - mysqlErr.Number == tmysql.ErrSpDoesNotExist) { + mysqlErr.Number == tmysql.ErrSpDoesNotExist || mysqlErr.Number == tmysql.ErrDBaccessDenied) { return false, nil } return false, errors.Trace(err) From 75e2c0b2e2b8d002afcab8dd4db8ec77e69a0e52 Mon Sep 17 00:00:00 2001 From: lidezhu Date: Fri, 17 May 2024 12:53:55 +0800 Subject: [PATCH 2/2] fix typo --- cdc/sink/dmlsink/txn/mysql/mysql_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdc/sink/dmlsink/txn/mysql/mysql_test.go b/cdc/sink/dmlsink/txn/mysql/mysql_test.go index 1965da89f54..4e56fdefc9f 100644 --- a/cdc/sink/dmlsink/txn/mysql/mysql_test.go +++ b/cdc/sink/dmlsink/txn/mysql/mysql_test.go @@ -91,7 +91,7 @@ func newTestMockDB(t *testing.T) (db *sql.DB, mock sqlmock.Sqlmock) { Number: 1305, Message: "FUNCTION test.tidb_version does not exist", }) - // mock a differnt possible error for the second query + // mock a different possible error for the second query mock.ExpectQuery("select tidb_version()").WillReturnError(&dmysql.MySQLError{ Number: 1044, Message: "Access denied for user 'cdc'@'%' to database 'information_schema'",