create table t1(f1 int not null, f2 int not null, index idx(f2))engine=innodb; create table t2(f1 int primary key, f2 int, index idx(f2))engine=innodb; insert into t1 values(1, 2); insert into t2 values(1, 2); SET GLOBAL innodb_fast_shutdown = 0; # Restart the server with innodb_force_recovery as 4. select * from t1; f1 f2 1 2 insert into t1 values(2, 3); ERROR HY000: Running in read-only mode alter table t1 add f3 int not null, algorithm=copy; ERROR HY000: Can't create table `test`.`t1` (errno: 165 "Table is read only") alter table t1 add f3 int not null, algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY drop index idx on t1; ERROR HY000: Can't create table `test`.`t1` (errno: 165 "Table is read only") alter table t1 drop index idx, algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY update t1 set f1=3 where f2=2; ERROR HY000: Running in read-only mode create table t3(f1 int not null)engine=innodb; ERROR HY000: Can't create table `test`.`t3` (errno: 165 "Table is read only") drop table t3; ERROR 42S02: Unknown table 'test.t3' rename table t1 to t3; ERROR HY000: Error on rename of './test/t1' to './test/t3' (errno: 165 "Table is read only") truncate table t1; ERROR HY000: Table 't1' is read only drop table t1; ERROR HY000: Table 't1' is read only show tables; Tables_in_test t1 t2 # Restart the server with innodb_force_recovery as 5. select * from t2; f1 f2 1 2 insert into t2 values(2, 3); ERROR HY000: Running in read-only mode alter table t2 add f3 int not null, algorithm=copy; ERROR HY000: Can't create table `test`.`t2` (errno: 165 "Table is read only") alter table t2 add f3 int not null, algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY drop index idx on t2; ERROR HY000: Can't create table `test`.`t2` (errno: 165 "Table is read only") update t2 set f1=3 where f2=2; ERROR HY000: Running in read-only mode create table t3(f1 int not null)engine=innodb; ERROR HY000: Can't create table `test`.`t3` (errno: 165 "Table is read only") drop table t3; ERROR 42S02: Unknown table 'test.t3' rename table t2 to t3; ERROR HY000: Error on rename of './test/t2' to './test/t3' (errno: 165 "Table is read only") truncate table t2; ERROR HY000: Table 't2' is read only drop table t2; ERROR HY000: Table 't2' is read only create schema db; drop schema db; show tables; Tables_in_test t1 t2 # Restart the server with innodb_force_recovery as 6. select * from t2; f1 f2 1 2 insert into t2 values(2, 3); ERROR HY000: Table 't2' is read only alter table t2 add f3 int not null, algorithm=copy; ERROR HY000: Table 't2' is read only alter table t2 add f3 int not null, algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Running in read-only mode. Try ALGORITHM=COPY drop index idx on t2; ERROR HY000: Table 't2' is read only update t2 set f1=3 where f2=2; ERROR HY000: Table 't2' is read only create table t3(f1 int not null)engine=innodb; ERROR HY000: Can't create table `test`.`t3` (errno: 165 "Table is read only") drop table t1; ERROR HY000: Table 't1' is read only rename table t2 to t3; ERROR HY000: Error on rename of './test/t2' to './test/t3' (errno: 165 "Table is read only") truncate table t2; ERROR HY000: Table 't2' is read only drop table t2; ERROR HY000: Table 't2' is read only show tables; Tables_in_test t1 t2 # Restart the server with innodb_force_recovery=2 select * from t2; f1 f2 1 2 begin; update t2 set f2=3; connect con1,localhost,root,,; # Force a redo log flush of the above uncommitted UPDATE SET GLOBAL innodb_flush_log_at_trx_commit=1; drop table t1; disconnect con1; connection default; # Kill the server # Restart the server with innodb_force_recovery=3 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; select * from t2; f1 f2 1 3 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; select * from t2; f1 f2 1 2 SET GLOBAL innodb_lock_wait_timeout=1; insert into t2 values(1,2); ERROR HY000: Lock wait timeout exceeded; try restarting transaction insert into t2 values(9,10); select * from t2; f1 f2 1 2 9 10 drop table t2; show tables; Tables_in_test