⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lock_multi.test

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 TEST
字号:
-- source include/not_embedded.inc--disable_warningsdrop table if exists t1,t2;--enable_warnings# Test to see if select will get the lock ahead of low priority updateconnect (locker,localhost,root,,);connect (reader,localhost,root,,);connect (writer,localhost,root,,);connection locker;create table t1(n int);insert into t1 values (1);lock tables t1 write;connection writer;send update low_priority t1 set n = 4;connection reader;--sleep 2send select n from t1;connection locker;--sleep 2unlock tables;connection writer;reap;connection reader;reap;drop table t1;connection locker;create table t1(n int);insert into t1 values (1);lock tables t1 read;connection writer;send update low_priority t1 set n = 4;connection reader;--sleep 2send select n from t1;connection locker;--sleep 2unlock tables;connection writer;reap;connection reader;reap;drop table t1;## Test problem when using locks with multi-updates# It should not block when multi-update is reading on a read-locked table#connection locker;create table t1 (a int, b int);create table t2 (c int, d int);insert into t1 values(1,1);insert into t1 values(2,2);insert into t2 values(1,2);lock table t1 read;connection writer;--sleep 2send update t1,t2 set c=a where b=d;connection reader;--sleep 2select c from t2;connection writer;reap;connection locker;drop table t1;drop table t2;## Test problem when using locks on many tables and droping a table that# is to-be-locked by another thread#connection locker;create table t1 (a int);create table t2 (a int);lock table t1 write, t2 write;connection reader;send insert t1 select * from t2;connection locker;drop table t2;connection reader;--error 1146reap;connection locker;drop table t1;# End of 4.1 tests## BUG#9998 - MySQL client hangs on USE "database"#create table t1(a int);lock tables t1 write;connection reader;show columns from t1;connection locker;unlock tables;drop table t1;## Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock#connect (con1,localhost,root,,);connect (con2,localhost,root,,);#connection con1;CREATE DATABASE mysqltest_1;FLUSH TABLES WITH READ LOCK;## With bug in place: acquire LOCK_mysql_create_table and# wait in wait_if_global_read_lock().connection con2;send DROP DATABASE mysqltest_1;--sleep 1## With bug in place: try to acquire LOCK_mysql_create_table...# When fixed: Reject dropping db because of the read lock.connection con1;--error ER_CANT_UPDATE_WITH_READLOCKDROP DATABASE mysqltest_1;UNLOCK TABLES;#connection con2;reap;#connection default;disconnect con1;disconnect con2;# This must have been dropped by connection 2 already,# which waited until the global read lock was released.--error ER_DB_DROP_EXISTSDROP DATABASE mysqltest_1;## Bug#16986 - Deadlock condition with MyISAM tables## Need a matching user in mysql.user for multi-table select--source include/add_anonymous_users.incconnection locker;use mysql;LOCK TABLES columns_priv WRITE, db WRITE, host WRITE, user WRITE;FLUSH TABLES;--sleep 1#connection reader;use mysql;#NOTE:  This must be a multi-table select, otherwise the deadlock will not occursend SELECT user.Select_priv FROM user, db WHERE user.user = db.user LIMIT 1;--sleep 1#connection locker;# Make test case independent from earlier grants.--replace_result "Table is already up to date" "OK"OPTIMIZE TABLES columns_priv, db, host, user;UNLOCK TABLES;#connection reader;reap;use test;#connection locker;use test;#connection default;## Test if CREATE TABLE with LOCK TABLE deadlocks.#connection writer;CREATE TABLE t1 (c1 int);LOCK TABLE t1 WRITE;## This waits until t1 is unlocked.connection locker;send FLUSH TABLES WITH READ LOCK;--sleep 1## This must not block.connection writer;CREATE TABLE t2 (c1 int);UNLOCK TABLES;## This awakes now.connection locker;reap;UNLOCK TABLES;#connection default;DROP TABLE t1, t2;## Test if CREATE TABLE SELECT with LOCK TABLE deadlocks.#connection writer;CREATE TABLE t1 (c1 int);LOCK TABLE t1 WRITE;## This waits until t1 is unlocked.connection locker;send FLUSH TABLES WITH READ LOCK;--sleep 1## This must not block.connection writer;--error 1100CREATE TABLE t2 AS SELECT * FROM t1;UNLOCK TABLES;## This awakes now.connection locker;reap;UNLOCK TABLES;#connection default;DROP TABLE t1;--source include/delete_anonymous_users.inc## Bug #17264: MySQL Server freeze#connection locker;# Disable warnings to allow test to run also without InnoDB--disable_warningscreate table t1 (f1 int(12) unsigned not null auto_increment, primary key(f1)) engine=innodb;--enable_warningslock tables t1 write;connection writer;--sleep 2delimiter //;send alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //delimiter ;//connection reader;--sleep 2delimiter //;send alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; alter table t1 auto_increment=0; //delimiter ;//connection locker;--sleep 2unlock tables;connection writer;reap;connection reader;reap;connection locker;drop table t1;# End of 5.0 tests

⌨️ 快捷键说明

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