I had one mysql engine connection in clickhouse. 
I shutdown mysql aws RDS instance.

I updated clickhouse using apt get.
Then I restarted clickhouse. Clickhouse wont start.

`ClickHouse client version 20.7.2.30 (official build).`

```
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.13 (stretch)
Release:	9.13
Codename:	stretch
```

clickhouse server log

```
2020.09.03 12:31:01.937116 [ 947 ] {} <Debug> Application: Shut down storages.
2020.09.03 12:31:01.937566 [ 947 ] {} <Debug> Application: Destroyed global context.
2020.09.03 12:31:01.937693 [ 947 ] {} <Error> Application: DB::Exception: Cannot create MySQL database, because Poco::Exception. Code: 1000, e.code() = 2002, e.displayText() = mysqlxx::ConnectionFailed: Can't connect to MySQL server on '.....rds.amazonaws.com' (110) ((nullptr):0), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x1271b990 in /usr/bin/clickhouse
1. ? @ 0x12596556 in /usr/bin/clickhouse
2. mysqlxx::Pool::allocConnection(bool) @ 0x1259fb31 in /usr/bin/clickhouse
3. mysqlxx::Pool::initialize() @ 0x1259fedd in /usr/bin/clickhouse
4. mysqlxx::Pool::get() @ 0x125a00e8 in /usr/bin/clickhouse
5. DB::DatabaseMySQL::fetchTablesWithModificationTime() const @ 0xf46df4a in /usr/bin/clickhouse
6. DB::DatabaseMySQL::fetchTablesIntoLocalCache() const @ 0xf470b57 in /usr/bin/clickhouse
7. DB::DatabaseMySQL::empty() const @ 0xf470c15 in /usr/bin/clickhouse
8. DB::DatabaseFactory::getImpl(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&) @ 0xf462839 in /usr/bin/clickhouse
9. DB::DatabaseFactory::get(DB::ASTCreateQuery const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&) @ 0xf463052 in /usr/bin/clickhouse
10. DB::InterpreterCreateQuery::createDatabase(DB::ASTCreateQuery&) @ 0xf455fc0 in /usr/bin/clickhouse
11. DB::InterpreterCreateQuery::execute() @ 0xf456f5e in /usr/bin/clickhouse
12. ? @ 0xf8338fa in /usr/bin/clickhouse
13. DB::loadMetadata(DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) @ 0xf83441b in /usr/bin/clickhouse
14. DB::Server::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) @ 0xa495dd7 in /usr/bin/clickhouse
15. Poco::Util::Application::run() @ 0x1264a9e7 in /usr/bin/clickhouse
16. DB::Server::run() @ 0xa4558d9 in /usr/bin/clickhouse
17. mainEntryClickHouseServer(int, char**) @ 0xa44a993 in /usr/bin/clickhouse
18. main @ 0xa3dd919 in /usr/bin/clickhouse
19. __libc_start_main @ 0x202e1 in /lib/x86_64-linux-gnu/libc-2.24.so
20. _start @ 0xa3dd02e in /usr/bin/clickhouse
 (version 20.7.2.30 (official build))
2020.09.03 12:31:01.937740 [ 947 ] {} <Informa
```

StoragePtr detachTable(ContextPtr context, const String & table_name) override;
    void detachTablePermanently(ContextPtr context, const String & table_name) override;
    void dropTable(ContextPtr context, const String & table_name, bool no_delay) override;
    void attachTable(ContextPtr context, const String & table_name, const StoragePtr & storage, const String & relative_table_path) override;
protected:
    ASTPtr getCreateTableQueryImpl(const String & name, ContextPtr context, bool throw_on_error) const override;
private:
    String metadata_path;
    ASTPtr database_engine_define;
    String database_name_in_mysql;
    std::unique_ptr<ConnectionMySQLSettings> database_settings;
    std::atomic<bool> quit{false};
    std::condition_variable cond;
    using MySQLPool = mysqlxx::PoolWithFailover;
    using ModifyTimeAndStorage = std::pair<UInt64, StoragePtr>;
    mutable MySQLPool mysql_pool;
    mutable std::vector<StoragePtr> outdated_tables;
    mutable std::map<String, ModifyTimeAndStorage> local_tables_cache;
    std::unordered_set<String> remove_or_detach_tables;
    void cleanOutdatedTables();
    void fetchTablesIntoLocalCache(ContextPtr context) const;
    std::map<String, UInt64> fetchTablesWithModificationTime(ContextPtr local_context) const;
    std::map<String, ColumnsDescription> fetchTablesColumnsList(const std::vector<String> & tables_name, ContextPtr context) const;
    void destroyLocalCacheExtraTables(const std::map<String, UInt64> & tables_with_modification_time) const;
    void fetchLatestTablesStructureIntoCache(const std::map<String, UInt64> & tables_modification_time, ContextPtr context) const;
    ThreadFromGlobalPool thread;
};
}
#endif