用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.5 KiB

5 months ago
##############################################################################
# WL#4677 Unique Server Ids for Replication Topology (UUIDs) #
#
# Each server has a UUID generated by server itself. It is stored in auto.cnf
# in @@DATADIR directory.
#
# @@SERVER_UUID is a readonly system variable, it is initialized as the
# server's UUID when starting. Users can get the server's UUID from
# @@SERVER_UUID.
#
# This test case tests whether the server's UUID can be generated, stored,
# initialized correctly.
##############################################################################
CALL mtr.add_suppression("Master's UUID has changed, its old UUID is");
--let $uuid_file= auto.cnf
--let $original_server_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
--let $datadir= query_get_value(SELECT @@DATADIR, @@DATADIR, 1)
--copy_file $datadir/$uuid_file $datadir/original_$uuid_file
--echo
--echo # Case 1:
--echo # @@SERVER_UUID is readonly.
--echo -----------------------------------------------------------------------------
--error 1238
SET GLOBAL SERVER_UUID= UUID();
--echo
--echo # Case 2:
--echo # If the file does not exists, mysqld generates it automatically.
--echo -----------------------------------------------------------------------------
--remove_file $datadir/$uuid_file
--source include/restart_mysqld.inc
--let $server_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
if (`SELECT '$server_uuid' = '' OR '$server_uuid' = 'NULL'`)
{
--die server's UUID is null
}
--echo
--echo # Case 3:
--echo # If there is no UUID in the file, mysqld generates it automatically.
--echo -----------------------------------------------------------------------------
--remove_file $datadir/$uuid_file
# There is a blank line in the file
--write_file $datadir/$uuid_file
[auto]
EOF
--source include/restart_mysqld.inc
--let $server_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
if (`SELECT '$server_uuid' = '' OR '$server_uuid' = 'NULL'`)
{
--die server's UUID is null
}
--echo
--echo # Case 4:
--echo # If there is a UUID in the file, it will be loaded into SERVER_UUID.
--echo -----------------------------------------------------------------------------
--remove_file $datadir/$uuid_file
--move_file $datadir/original_$uuid_file $datadir/$uuid_file
--source include/restart_mysqld.inc
--let $server_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
if ($server_uuid != $original_server_uuid)
{
--echo $server_uuid != $original_server_uuid
--die wrong server_uuid
}