I am unable to start the Clickhouse-local with --config-file option , However clickhouse-server is running with same configuration xml files.

I am getting below error :
<img width="1247" alt="image" src="https://user-images.githubusercontent.com/86018844/179818457-c75ab326-7169-4f4e-9cbb-3aa3b08c77e8.png">

After debugging , It seems that Clickhouse-local is searching for "<users_config>" in config() and if not , setting the user_config_path to config.xml. Since config.xml doesn't have any user related storage info, throwing error.
https://github.com/ClickHouse/ClickHouse/blob/master/programs/local/LocalServer.cpp#L328

Adding <users_config> in config.xml loaded the user configuration successfully , However it fails with default database exists error. Since Clickhouse-local already creates default database as part of DatabaseMemory and try to create database again here.
https://github.com/ClickHouse/ClickHouse/blob/master/src/Interpreters/loadMetadata.cpp#L89
<img width="1247" alt="image" src="https://user-images.githubusercontent.com/86018844/179818409-8e72eea4-ed19-4187-b0a6-45a014e2e7a5.png">


PS: , In clickhouse-server, CH automatically searches for user.xml in same path as in config.xml. There is no constraint with <users_config> tag .
LOG_DEBUG(log, "Will create working directory inside current directory: {}", parent_folder.string());
        }
        
        
        
        
        default_path = parent_folder / fmt::format("clickhouse-local-{}-{}-{}", getpid(), time(nullptr), randomSeed());
        if (exists(default_path))
            throw Exception(ErrorCodes::FILE_ALREADY_EXISTS, "Unsuccessful attempt to create working directory: {} exist!", default_path.string());
        create_directory(default_path);
        temporary_directory_to_delete = default_path;
        path = default_path.string();
        LOG_DEBUG(log, "Working directory created: {}", path);
    }
    if (path.back() != '/')
        path += '/';
    fs::create_directories(fs::path(path) / "user_defined/");
    fs::create_directories(fs::path(path) / "data/");
    fs::create_directories(fs::path(path) / "metadata/");
    fs::create_directories(fs::path(path) / "metadata_dropped/");
    global_context->setPath(path);
    global_context->setTemporaryStorage(path + "tmp");
    global_context->setFlagsPath(path + "flags");
    global_context->setUserFilesPath(""); 
    
    const std::string & top_level_domains_path = config().getString("top_level_domains_path", path + "top_level_domains/");
    if (!top_level_domains_path.empty())
        TLDListsHolder::getInstance().parseConfig(fs::path(top_level_domains_path) / "", config());
}
void LocalServer::cleanup()