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();