ndb_single_user.test

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· TEST 代码 · 共 121 行

TEST
121
字号
-- source include/have_ndb.inc-- source include/have_multi_ndb.inc-- source include/ndb_default_cluster.inc-- source include/not_embedded.inc--disable_warningsuse test;drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;--enable_warnings# operations allowed while cluster is in single user mode--connection server1--let $node_id= `SHOW STATUS LIKE 'Ndb_cluster_node_id'`--disable_query_log--eval set @node_id= SUBSTRING('$node_id', 20)+0--enable_query_log--let $node_id= `SELECT @node_id`--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "enter single user mode $node_id" >> $NDB_TOOLS_OUTPUT--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" --single-user >> $NDB_TOOLS_OUTPUT# verify that we are indeed in single user mode--connection server2--error 1005create table t1 (a int key, b int unique, c int) engine ndb;# test some sql on first mysqld--connection server1create table t1 (a int key, b int unique, c int) engine ndb;insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0),(6,6,0),(7,7,0),(8,8,0),(9,9,0),(10,10,0);create table t2 as select * from t1;# read with pkselect * from t1 where a = 1;# read with unique indexselect * from t1 where b = 4;# read with ordered indexselect * from t1 where a > 4 order by a;# update with pkupdate t1 set b=102 where a = 2;# update with unique indexupdate t1 set b=103 where b = 3;# update with full table scanupdate t1 set b=b+100;# update with ordered insex scanupdate t1 set b=b+100 where a > 7;# delete with full table scandelete from t1;insert into t1 select * from t2;# Bug #27710 Creating unique index fails during single user mode# - prior to bugfix this would failcreate unique index new_index on t1 (b,c);# test some sql on other mysqld--connection server2--error 1051drop table t1;--error 1296create index new_index_fail on t1 (c);--error 1296insert into t1 values (21,21,0),(22,22,0),(23,23,0),(24,24,0),(25,25,0),(26,26,0),(27,27,0),(28,28,0),(29,29,0),(210,210,0);--error 1296select * from t1 where a = 1;--error 1296select * from t1 where b = 4;--error 1296update t1 set b=102 where a = 2;--error 1296update t1 set b=103 where b = 3;--error 1296update t1 set b=b+100;--error 1296update t1 set b=b+100 where a > 7;--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "exit single user mode" >> $NDB_TOOLS_OUTPUT--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT## we should be able to run transaction while in single user mode#--connection server1BEGIN;update t1 set b=b+100 where a=1;--connection server2BEGIN;update t1 set b=b+100 where a=2;# enter single user mode--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "enter single user mode $node_id" >> $NDB_TOOLS_OUTPUT--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" --single-user >> $NDB_TOOLS_OUTPUT--connection server1update t1 set b=b+100 where a=3;COMMIT;# while on other mysqld it should be aborted--connection server2--error 1296update t1 set b=b+100 where a=4;--error 1296COMMIT;# Bug #25275 SINGLE USER MODE prevents ALTER on non-ndb# tables for other mysqld nodes--connection server2create table t2 (a int) engine myisam;alter table t2 add column (b int);# exit single user mode--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "exit single user mode" >> $NDB_TOOLS_OUTPUT--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults >> $NDB_TOOLS_OUTPUT# cleanup--connection server2drop table t2;--connection server1drop table t1;# End of 5.0 tests

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?