From e1bb7acfe52bf10a6e6c0fdfe49de6fea7663426 Mon Sep 17 00:00:00 2001 From: shuiyisong <113876041+shuiyisong@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:31:09 +0800 Subject: [PATCH] fix: return err msg if use wrong database in MySQL (#1866) --- src/servers/src/mysql/handler.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/servers/src/mysql/handler.rs b/src/servers/src/mysql/handler.rs index 911e806f72..ddd53d64fb 100644 --- a/src/servers/src/mysql/handler.rs +++ b/src/servers/src/mysql/handler.rs @@ -344,10 +344,16 @@ impl AsyncMysqlShim for MysqlInstanceShi async fn on_init<'a>(&'a mut self, database: &'a str, w: InitWriter<'a, W>) -> Result<()> { let (catalog, schema) = crate::parse_catalog_and_schema_from_client_database_name(database); - ensure!( - self.query_handler.is_valid_schema(catalog, schema).await?, - error::DatabaseNotFoundSnafu { catalog, schema } - ); + + if !self.query_handler.is_valid_schema(catalog, schema).await? { + return w + .error( + ErrorKind::ER_WRONG_DB_NAME, + format!("Unknown database '{}'", database).as_bytes(), + ) + .await + .map_err(|e| e.into()); + } let user_info = &self.session.user_info();