mirror of
https://github.com/MariaDB/server.git
synced 2025-09-06 19:08:06 +03:00
The parameter innodb_log_checksums that was introduced in MariaDB 10.2.2 via mysql/mysql-server@af0acedd88 does not make much sense. The original motivation of introducing this parameter (initially called innodb_log_checksum_algorithm in mysql/mysql-server@22ba38218e) was that the InnoDB redo log used the slow and insecure innodb algorithm. With hardware or SIMD accelerated CRC-32C, there should be no reason to allow checksums to be disabled on the redo log. The parameter innodb_encrypt_log already implies innodb_log_checksums=ON. Let us deprecate the parameter innodb_log_checksums and always compute redo log checksums, even if innodb_log_checksums=OFF is specified. An upgrade from MariaDB 10.2.2 or later will only be possible after using the default value innodb_log_checksums=ON. If the non-default value innodb_log_checksums=OFF was in effect when the server was shut down, a log block checksum mismatch will be reported and the upgraded server will fail to start up.
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
SET @orig = @@global.innodb_log_checksums;
|
|
SELECT @orig;
|
|
@orig
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 'crc32';
|
|
ERROR 42000: Variable 'innodb_log_checksums' can't be set to the value of 'crc32'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 2;
|
|
ERROR 42000: Variable 'innodb_log_checksums' can't be set to the value of '2'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 1e2;
|
|
ERROR 42000: Incorrect argument type to variable 'innodb_log_checksums'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = 1.0;
|
|
ERROR 42000: Incorrect argument type to variable 'innodb_log_checksums'
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET innodb_log_checksums = OFF;
|
|
ERROR HY000: Variable 'innodb_log_checksums' is a GLOBAL variable and should be set with SET GLOBAL
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = OFF;
|
|
Warnings:
|
|
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = default;
|
|
Warnings:
|
|
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
|
|
SET GLOBAL innodb_log_checksums = ON;
|
|
Warnings:
|
|
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|
|
SET GLOBAL innodb_log_checksums = @orig;
|
|
Warnings:
|
|
Warning 138 The parameter innodb_log_checksums is deprecated and has no effect.
|
|
SELECT @@global.innodb_log_checksums;
|
|
@@global.innodb_log_checksums
|
|
1
|