Revise the code according to the review

This commit is contained in:
taichong 2020-11-03 11:12:05 +08:00
parent aecb9716e1
commit 5c1a01897a
4 changed files with 11 additions and 10 deletions

View File

@ -107,9 +107,10 @@ static Block getShowMasterLogHeader(const String & mysql_version)
};
}
static bool rightSyncUserPrivImpl(mysqlxx::PoolWithFailover::Entry & connection, std::ostream & out)
static bool checkSyncUserPrivImpl(mysqlxx::PoolWithFailover::Entry & connection, std::ostream & out)
{
Block sync_user_privs_header{
Block sync_user_privs_header
{
{std::make_shared<DataTypeString>(), "current_user_grants"}
};
@ -138,10 +139,10 @@ static bool rightSyncUserPrivImpl(mysqlxx::PoolWithFailover::Entry & connection,
return false;
}
static void rightSyncUserPriv(mysqlxx::PoolWithFailover::Entry & connection)
static void checkSyncUserPriv(mysqlxx::PoolWithFailover::Entry & connection)
{
std::stringstream out;
if (!rightSyncUserPrivImpl(connection, out))
if (!checkSyncUserPrivImpl(connection, out))
throw Exception("MySQL SYNC USER ACCESS ERR: mysql sync user needs "
"at least GLOBAL PRIVILEGES:'RELOAD, REPLICATION SLAVE, REPLICATION CLIENT' "
"and SELECT PRIVILEGE on MySQL Database."
@ -210,7 +211,7 @@ MaterializeMetadata::MaterializeMetadata(
const String & database, bool & opened_transaction, const String & mysql_version)
: persistent_path(path_)
{
rightSyncUserPriv(connection);
checkSyncUserPriv(connection);
if (Poco::File(persistent_path).exists())
{

View File

@ -216,7 +216,8 @@ void MaterializeMySQLSyncThread::stopSynchronization()
void MaterializeMySQLSyncThread::startSynchronization()
{
try{
try
{
const auto & mysql_server_version = checkVariableAndGetVersion(pool.get());
background_thread_pool = std::make_unique<ThreadFromGlobalPool>(

View File

@ -64,6 +64,8 @@ private:
MaterializeMySQLSettings * settings;
String query_prefix;
// USE MySQL ERROR CODE:
// https://dev.mysql.com/doc/mysql-errors/5.7/en/server-error-reference.html
const int ER_ACCESS_DENIED_ERROR = 1045;
const int ER_DBACCESS_DENIED_ERROR = 1044;
const int ER_BAD_DB_ERROR = 1049;

View File

@ -476,10 +476,7 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n
service_name))
# wait MaterializeMySQL read binlog events
time.sleep(90)
assert "test_table_1" in clickhouse_node.query("SHOW TABLES FROM test_database")
check_query(clickhouse_node, "SELECT count() FROM test_database.test_table_1 FORMAT TSV", "6\n", 5, 5)
check_query(clickhouse_node, "SELECT count() FROM test_database.test_table_1 FORMAT TSV", "6\n", 30, 5)
mysql_node.query("INSERT INTO test_database.test_table_1 VALUES(7);")
check_query(clickhouse_node, "SELECT count() FROM test_database.test_table_1 FORMAT TSV", "7\n")
clickhouse_node.query("DROP DATABASE test_database;")