i use
my steps
1. create a new database ckdb on mysql, then  create table t1(a int, primary key(a)); and insert some rows
2. SET allow_experimental_database_materialize_mysql=1; at clickhouse, 
3. CREATE DATABASE ckdb ENGINE = MaterializeMySQL('127.0.0.1:3306', 'ckdb', 'root', 'A123b_456');
4. use ckdb and select * from t1 ok
5. create table dzm as select * from others in mysql ----> cannot see dzm in clickhouse, but if select * from t1, reports
```
Code: 48. DB::Exception: Received from localhost:9000. DB::Exception: The ckdb.dzm cannot be materialized, because there is no primary keys..
```
6. create table t2(a int,b int primary a);----> cannot see t2 in clickhouse, , but if select * from t1, reports
```
Code: 44. DB::Exception: Received from localhost:9000. DB::Exception: Sorting key cannot contain nullable columns.
```
<del>7. if i drop ckdb and recreate it, all tables can be selected </del>
7.if there are some 'bad' tables in a database, all tables in that database cannot be selected

Make sure to check documentation https://clickhouse.yandex/docs/en/ first. If the question is concise and probably has a short answer, asking it in Telegram chat https://telegram.me/clickhouse_en is probably the fastest way to find the answer. For more complicated questions, consider asking them on StackOverflow with "clickhouse" tag https://stackoverflow.com/questions/tagged/clickhouse 

If you still prefer GitHub issues, remove all this text and ask your question here.

non_increment_keys.emplace_back(name);
            }
        }
        order_by_columns_list.emplace_back(increment_keys);
        order_by_columns_list.emplace_front(non_increment_keys);
    };
    
    add_order_by_expression(unique_keys);
    add_order_by_expression(keys);
    add_order_by_expression(primary_keys);
    auto order_by_expression = std::make_shared<ASTFunction>();
    order_by_expression->name = "tuple";
    order_by_expression->arguments = std::make_shared<ASTExpressionList>();
    for (const auto & order_by_columns : order_by_columns_list)
    {
        for (const auto & order_by_column : order_by_columns)
            order_by_expression->arguments->children.emplace_back(std::make_shared<ASTIdentifier>(order_by_column));
    }
    return order_by_expression;
}
void InterpreterCreateImpl::validate(const InterpreterCreateImpl::TQuery & create_query, const Context &)
{
    
    if (create_query.like_table)
        throw Exception("Cannot convert create like statement to ClickHouse SQL", ErrorCodes::NOT_IMPLEMENTED);
    const auto & create_defines = create_query.columns_list->as<MySQLParser::ASTCreateDefines>();
    if (!create_defines || !create_defines->columns || create_defines->columns->children.empty())
        throw Exception("Missing definition of columns.", ErrorCodes::EMPTY_LIST_OF_COLUMNS_PASSED);
}
ASTs InterpreterCreateImpl::getRewrittenQueries(