文档中心 云数据库 MariaDB 快速入门 使用前须知 MariaDB(TDSQL)与MySQL5.6兼容性说明

MariaDB(TDSQL)与MySQL5.6兼容性说明

最近更新时间:2019-04-29 17:26:28

前言

TDSQL是以MariaDB为基础开发的,我们选择MariaDB的原因不仅是因为考虑到未来MySQL的开源问题,还有就是经过多年的实际验证,对MariaDB的性能、功能和可靠性都充满信心。

期望读者们在阅读本文时,不要将“不兼容”看做是“洪水猛兽”;因为TDSQL(MariaDB)都将超越MySQL作为目标之一。“超越”意味着更强大、更丰富性能和功能,也意味着使用数据库将更标准和更灵活。因此,两个引擎的不兼容性将会一直存在。

本文所描述的内容,虽然经过大量实际项目验证和案例测试,但由于笔者能力有限,如果存在遗漏和错误,欢迎向** vitosu@tencent.com **直接反馈。

MariaDB(TDSQL)和开源MariaDB的兼容性

完全兼容MariaDB。

MariaDB(TDSQL)与MySQL5.6兼容性

MariaDB(TDSQL)与MySQL5.6高度兼容,这意味着已用于 MySQL 数据库的代码、应用程序、驱动程序和工具,无需更改(或少量调整),即可与TDSQL配合使用。

  • 数据文件和表定义文件是二进制兼容的;
  • 所有的客户端API和协议都是兼容的;
  • 所有的文件名、二进制文件、路径、端口号等都是相同的;
  • 所有的连接器,包括PHP、Perl、Python、Java、.NET、Ruby、MySQL的连接器在MariaDB上都可以正常使用的,不需要进行任何改动。
  • 可以使用MySQL客户端链接到TDSQL上。

TDSQL和MySQL5.6的不兼容性

MariaDB(TDSQL)与MySQL5.6高度兼容,却有极少点不兼容;值得说明的是,MySQL各个版本之间,如5.5与5.6、5.6与5.7也并非完全兼容。

1.GTID不兼容

  • MariaDB(TDSQL)的GTID和MySQL 5.6的GTID不能兼容,也就是说MySQL不能作为TDSQL的从库。

2.Binlog默认配置不同

  • MariaDB(TDSQL)的Binlog默认采用row格式,而MySQL、MariaDB默认采用statement格式。

3.CREAT TABLE ... SELECT命令在基于行模式复制和基于命令模式复制

  • 为了使CREAT TABLE ... SELECT命令在基于行模式复制和基于命令模式复制的情况下都能正常工作,TDSQL中的CREAT TABLE ... SELECT命令在从库上将会被转化为CREAT OR RPLACE命令执行。这样的好处是即使从库中途宕机恢复后仍然能够正常工作。

3.1 默认值推导

Create table ... Select from 语句建表时,varchar(N)类型的字段的缺省值的区别:

  • Mariadb10.1 没有默认值,
  • mysql5.7的默认值是NULL,
  • mysql5.5/5.6的默认值是空串 ‘’。

decimal列的默认值:mysql5.5/5.6把推导为0.00,mariadb-10.1推导为NULL。

示例:

---------------- mysql 5.5 -----------------------
create table t1
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; 
show create table t1; 
Table   Create Table
t1  CREATE TABLE `t1` (
  `f1` varchar(1) CHARACTER SET latin5 NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-------------------- mysql 5.7 ---------------------------------
create table t1
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; 
show create table t1; 
Table   Create Table
t1  CREATE TABLE `t1` (
  `f1` varchar(1) CHARACTER SET latin5 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
------------------- mariadb10.1*--------------------------------
create table t1
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; 
show create table t1; 
Table   Create Table
t1  CREATE TABLE `t1` (
  `f1` varchar(1) CHARACTER SET latin5 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1

3.2 处理子查询中select语句的区别

在这条语句中SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1;

  • Mysql5.5/5.6 处理子查询“SELECT MAX(x), 12”时,如果该子查询位于“in”后面则相当于“SELECT MAX(x), 12 from t1”,如果子查询位于‘=’后面,则相当于“SELECT x, 12”,其中x就是当前行中a的别名
  • Mysql5.7和Mariadb 10.1.*中,子查询“SELECT MAX(x), 12”都等于“SELECT x, 12”,其中x就是当前行中a的别名

示例:

----------------- mysql 5.5/5.6 -----------------------
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1), (2), (11);
SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1;
x   ROW(11, 12) = (SELECT MAX(x), 12)   ROW(11, 12) IN (SELECT MAX(x), 12)
1   0   1
2   0   1
11  1   1
--------------------------- mariadb-10.1.* or mysql 5.7------------------------------
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1), (2), (11);
SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1;
x   ROW(11, 12) = (SELECT MAX(x), 12)   ROW(11, 12) IN (SELECT MAX(x), 12)
1   0   0
2   0   0
11  1   1

3.3 对NULL在ALL/SOME中的处理

Mysql5.5中对于 10 >= ALL (NULL, 1, 10)或者1 <= ALL (NULL, 1, 10)的判断中,因为NULL不可比,所以直接跳过与NULL,即当作该NULL不存在。
Mysql5.7和mariadb中,由于NULL属于未知值,在上述的对比中结果也应该是未知的,所以返回NULL

3.4 alter table inplace 操作

如果alter table仅仅交换列的顺序,Mariadb允许使用inplace算法,但是Mysql不允许。

MariaDB 执行inplace alter table后,show create table t1后发现运行结果与mysql用ALGORITHM=COPY时运行结果相同

4.MySQL/MariaDB(TDSQL)的未定义行为

未定义行为(undefined behavior)的意思是,MySQL/Mariadb可以按照任意方式实现这种功能和行为,而且版本之间可能发生变化而不需要通知用户或者明确指出。MySQL和MariaDB对这些行为的实现可能产生相同的结果或者不同的结果。

对于现在和未来版本的这类不同或者相同之处,TDSQL不会做任何结果保证,也不保证提供内核优化保证完全一致。未定义行为官方说明:https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/

4.1 字符类型列与大小写无关的排序

字符类型列,排序(order by 子句)一般是按照大小写无关的方式排序的:这意味着对于除了大小写有区别之外内容完全相同的字段,排序后的顺序是未定义的。您可以使用BINARY关键字来强制大小写相关的排序: ORDER BY BINARY 列名。

示例:

MySQL和MariaDB对下列面示例的排序可能是完全随机的
mysql> SELECT email FROM t2 LEFT JOIN t1  ON kid = t2.id WHERE t1.id IS NULL order by email;

+-------+
| email |
+-------+
| email |
| eMail |
| EMail |
+-------+
3 rows in set (0.00 sec)

4.2 Auto_increment字段溢出后的处理方式不同

INNODB 特定的未定义行为

  1. 在所有自增列锁定模式下(0,1,2),如果给自增列字段指定负数,自增机制的行为是未定义的;

  2. 在所有自增列锁定模式下(0,1,2),如果自增列字段值大于该自增列整数类型可以存储的最大整数值,那么自增机制的行为是未定义的。

说明:请不要向自增列随意插入(错误)数字。

4.3 FOUND ROWS 统计方式不同

FOUND_ROWS()的返回值只有在查询语句中使用了UNION ALL时候才是精确的。

如果只使用UNION不使用ALL,那么MariaDB会去重统计,MySQL不会去重统计。如果使用了UNION的查询语句不实用LIMIT子句那么 SQL_CALC_FOUND_ROWS 关键字就被忽略了,FOUND_ROWS()返回的就是执行UNION时候创建的临时表中的行数。

4.4 Lock tables 语句的上锁顺序不同

LOCK TABLES 语句按照如下方法上锁:第一步是把所有要锁住的表按照内部定义的方式排序;但从用户角度来看,MySQL/Mariadb这个顺序是未定义的。例如,您写一个 LOCK TABLES t1, t2, t3,MySQL/Mariadb不会按照t1, t2, t3的顺序上锁。
因为对MySQL/Mariadb来说,这个是未定义行为,MySQL和MariaDB可能采用不同的方式去排序t1, t2, t3,然后再按照那个拍好的顺序依次给他们上锁。

因此,用户写的存储过程或者查询代码不应该依赖任何上锁顺序来保持正确性,否则可能会发生死锁。

4.5 执行Reset master语句的时机

RESET MASTER 不可以在有任何复制备机运行期间被执行,此时执行RESET MASTER时候主机和备机的行为对MariaDB和MySQL是未定义的(也是不支持的);执行RESET MASTER期间可能发生各种错误(不具有可预见性,甚至不会发生错误),并且这些错误MariaDB和MySQL的官方开发团队不会认为是bug,也不会对发生的错误负责。

4.6 日期和时间类型转换为YEAR类型

MySQL5.5 中YEAR与date类型的变量在比较时会将date类型转为year类型进行对比,即“2011-01-01”被转为2011。

MySQL5.7和mariadb中date类型的变量仍然为date,所以在和year对比时不相等。

类似地,mariadb不能够把时间类型转换为YEAR类型,而mysql5.6会使用当前session的timestamp值的YEAR部分作为每一个TIME类型值的year,因此当需要把一个time类型的值转换为year类型时候,就使用这个session的timestamp的year。

4.7 未知字符的处理方式

  • 不同版本的mysql和mariadb在做字符编码转换时是有区别的:例如,unhex如果不识别一个编码字节串,那么在mysql5.5/5.6/5.7中它返回空串’’,但是mariadb10.1. 会返回问号字符(?)。

  • 语句UPDATE t1 SET a=unhex(code) ORDER BY code对表t1中的a字段进行赋值,但由于unhex只能识别和转换特定范围内的字节串,因此部分赋值是失败的:

    • mysql5.5默认的存储引擎是MyISAM,不支持事务。当对t1某行中的a赋值失败后就会退出该语句,而已经赋值的仍然存储在t1中
    • mysql5.7默认的存储引擎是InnoDB,因此当对t1某行中的a赋值失败后这个事务就会进行回滚,因此已经赋值都会被回滚。
    • mariadb默认的存储引擎为innodb,且当unhex无法找到一个字节串对应的字符时,就会返回问号字符,0x3F,即字符'?',因此不管存储引擎是innodb和myisan,他都会是的操作成功
  • 当使用insert into 语句插入16进制的字节串时,如果无法找到对应的utf8mb4编码的字符时,

    • mysql5.5/5.6使用heap存储引擎时,忽略这个未知字符
    • mariadb10.1和mysql5.7 把它用0x3F(即问号字符)代替。
  • 对于非法编码的字符串字段,mysql使用innodb存储引擎时直接返回错误。而mariadb则将其替换为3F再将其插入

4.8 时间类型精度

SELECT CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6));
CAST(CAST('10:11:12.098700' AS TIME) AS DECIMAL(20,6))

出现类似语句时,MySQL 5.5/5.6与MariaDB10.1/MySQL5.7之间采用不同的处理方式:

  • 在MySQL 5.5/5.6中返回101112.098700,仍然能够保持精度。
  • 在MySQL 5.7和MariaDB 10.1中返回101112.000000,这是因为该语句没有指定TIME的精度,而TIME的默认精度为0,因此“CAST('10:11:12.098700' AS TIME)”会丢失小数点后面的数值

为了保证时间的精度不变,可以使用如下语句;

SELECT CAST(CAST('10:11:12.098700' (6)) AS DECIMAL(20,6));
+-----------------------------------------------------------+
| CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)) |
+-----------------------------------------------------------+
| 101112.098700 |
+-----------------------------------------------------------+

对于TIME默认的精度不统一,如果对时间精度有要求,为了升级或者迁移都应该明确制定time的具体精度。

CREATE TABLE t1(f1 TIME);
INSERT INTO t1 VALUES ('23:38:57');
SELECT TIMESTAMP(f1,'1') FROM t1;

Mysql5.5/5.6返回NULL, Mariadb10.1和Mysql5.7返回 2016-08-03 23:38:58

  • TIMESTAMP()的第一个参数为time类型时,mysql 5.5无法自动转换为timestamp类型,因而返回NULL
  • 而mysql5.7和mariadb则将time类型自动转为timestamp类型,即将当前的日期+输入的time变量

5.附录:MariaDB参数和MySQL参数

5.1 相同变量名不同参数

变量名相同意味着主要功能也相同

参数名 TDSQL(MariaDB 10.1) MySQL 5.6
old_passwords OFF 0
tmpdir /tmp/5cXm2hHsWi/mysqld.1 /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/tmp/mysqld.1
version 10.1.9-MariaDB-log 5.6.31-log
slow_query_log_file /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/mysqld.1/mysqld-slow.log /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/mysqld.1/mysqld-slow.log
table_definition_cache 400 1400
datadir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/mysqld.1/data/ /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/mysqld.1/data/
pid_file /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/run/mysqld.1.pid /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/run/mysqld.1.pid
max_seeks_for_key 4294967295 18446744073709500000
slave_load_tmpdir /tmp/5cXm2hHsWi/mysqld.1 /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/tmp/mysqld.1
secure_file_priv /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/ /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/
sql_mode NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION NO_ENGINE_SUBSTITUTION
ssl_cert /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/mysql-test/std_data/server-cert.pem /data/home/tdengine/dongzhi/src/mysql-server-5.6/mysql-test/std_data/server-cert.pem
ssl_ca /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/mysql-test/std_data/cacert.pem /data/home/tdengine/dongzhi/src/mysql-server-5.6/mysql-test/std_data/cacert.pem
open_files_limit 1024 4161
binlog_checksum NONE CRC32
basedir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1 /data/home/tdengine/dongzhi/src/mysql-server-5.6
query_alloc_block_size 16384 8192
innodb_max_dirty_pages_pct 75.000000 75
ssl_key /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/mysql-test/std_data/server-key.pem /data/home/tdengine/dongzhi/src/mysql-server-5.6/mysql-test/std_data/server-key.pem
myisam_sort_buffer_size 134216704 8388608
skip_name_resolve ON OFF
pseudo_thread_id 3 2
character_sets_dir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/sql/share/charsets/ /data/home/tdengine/dongzhi/src/mysql-server-5.6/sql/share/charsets/
innodb_adaptive_flushing_lwm 10 10
myisam_recover_options DEFAULT OFF
performance_schema_max_statement_classes 179 168
innodb_version 5.6.26-74.0 5.6.31
max_write_lock_count 4294967295 18446744073709500000
thread_cache_size 0 9
innodb_checksum_algorithm INNODB innodb
optimizer_switch index_merge=on,
index_merge_union=on,
index_merge_sort_union=on,
index_merge_intersection=on,
index_merge_sort_intersection=off,
engine_condition_pushdown=off,
index_condition_pushdown=on,
derived_merge=on,
derived_with_keys=on,
firstmatch=on,
loosescan=on,
materialization=on,
in_to_exists=on,
semijoin=on,
partial_match_rowid_merge=on,
partial_match_table_scan=on,
subquery_cache=on,
mrr=off,
mrr_cost_based=off,
mrr_sort_keys=off,
outer_join_with_cache=on,
semijoin_with_cache=on,
join_cache_incremental=on,
join_cache_hashed=on,
join_cache_bka=on,
optimize_join_buffer_size=off,
table_elimination=on,
extended_keys=on,
exists_to_in=on
index_merge=on,
index_merge_union=on,
index_merge_sort_union=on,
index_merge_intersection=on,
engine_condition_pushdown=on,
index_condition_pushdown=on,
mrr=on,
mrr_cost_based=on,
block_nested_loop=on,
batched_key_access=off,
materialization=on,
semijoin=on,
loosescan=on,
firstmatch=on,
subquery_materialization_cost_based=on,
use_index_extensions=on
timestamp 1471938276 1471937901
general_log_file /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/mysqld.1/mysqld.log /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/mysqld.1/mysqld.log
myisam_stats_method NULLS_UNEQUAL nulls_unequal
innodb_log_compressed_pages OFF ON
query_prealloc_size 24576 0
rand_seed2 297895171 0
rand_seed1 605568929 0
socket /tmp/5cXm2hHsWi/mysqld.1.sock /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/mysql-test/var/tmp/mysqld.1.sock
innodb_max_dirty_pages_pct_lwm 0.001 0
lc_messages_dir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/sql/share/ /data/home/tdengine/dongzhi/src/mysql-server-5.6/build_dongzhi/sql/share/
max_relay_log_size 1073741824 0
plugin_dir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/lib/plugin/ /data/home/tdengine/dongzhi/src/mysql-server-5.6/lib/plugin/
thread_stack 294912 262144

5.2 仅存在于TDSQL(MariaDB)中的变量

  • aria_block_size 8192
  • aria_checkpoint_interval 30
  • aria_checkpoint_log_activity 1048576
  • aria_encrypt_tables OFF
  • aria_force_start_after_recovery_failures 0
  • aria_group_commit none
  • aria_group_commit_interval 0
  • aria_log_file_size 1073741824
  • aria_log_purge_type immediate
  • aria_max_sort_file_size 9223372036853727232
  • aria_page_checksum ON
  • aria_pagecache_age_threshold 300
  • aria_pagecache_buffer_size 134217728
  • aria_pagecache_division_limit 100
  • aria_pagecache_file_hash_size 512
  • aria_recover NORMAL
  • aria_repair_threads 1
  • aria_sort_buffer_size 268434432
  • aria_stats_method nulls_unequal
  • aria_sync_log_dir NEWFILE
  • aria_used_for_temp_tables ON
  • autoremoverelaylog ON
  • binlog_annotate_row_events OFF
  • binlog_commit_wait_count 0
  • binlog_commit_wait_usec 100000
  • binlog_optimize_thread_scheduling ON
  • deadlock_search_depth_long 15
  • deadlock_search_depth_short 4
  • deadlock_timeout_long 50000000
  • deadlock_timeout_short 10000
  • debug_no_thread_alarm OFF
  • default_master_connection
  • default_regex_flags
  • encrypt_binlog OFF
  • encrypt_tmp_disk_tables OFF
  • encrypt_tmp_files OFF
  • enforce_storage_engine
  • expensive_subquery_limit 100
  • extra_max_connections 20
  • extra_port 0
  • flush_relay_logs_for_strong_consistency ON
  • gtid_binlog_pos
  • gtid_binlog_state
  • gtid_current_pos
  • gtid_domain_id 0
  • gtid_ignore_duplicates OFF
  • gtid_seq_no 0
  • gtid_slave_pos
  • gtid_strict_mode OFF
  • histogram_size 0
  • histogram_type SINGLE_PREC_HB
  • in_transaction 0
  • innodb_adaptive_hash_index_partitions 1
  • innodb_background_scrub_data_check_interval 3600
  • innodb_background_scrub_data_compressed OFF
  • innodb_background_scrub_data_interval 604800
  • innodb_background_scrub_data_uncompressed OFF
  • innodb_buf_dump_status_frequency 0
  • innodb_buffer_pool_populate OFF
  • innodb_cleaner_lsn_age_factor HIGH_CHECKPOINT
  • innodb_compression_algorithm none
  • innodb_corrupt_table_action assert
  • innodb_default_encryption_key_id 1
  • innodb_defragment OFF
  • innodb_defragment_fill_factor 0.900000
  • innodb_defragment_fill_factor_n_recs 20
  • innodb_defragment_frequency 40
  • innodb_defragment_n_pages 7
  • innodb_defragment_stats_accuracy 0
  • innodb_disallow_writes OFF
  • innodb_empty_free_list_algorithm BACKOFF
  • innodb_encrypt_log OFF
  • innodb_encrypt_tables OFF
  • innodb_encryption_rotate_key_age 1
  • innodb_encryption_rotation_iops 100
  • innodb_encryption_threads 0
  • innodb_fake_changes OFF
  • innodb_fatal_semaphore_wait_threshold 600
  • innodb_force_primary_key OFF
  • innodb_foreground_preflush EXPONENTIAL_BACKOFF
  • innodb_idle_flush_pct 100
  • innodb_immediate_scrub_data_uncompressed OFF
  • innodb_instrument_semaphores OFF
  • innodb_kill_idle_transaction 0
  • innodb_locking_fake_changes ON
  • innodb_log_arch_dir ./
  • innodb_log_arch_expire_sec 0
  • innodb_log_archive OFF
  • innodb_log_block_size 512
  • innodb_log_checksum_algorithm INNODB
  • innodb_max_bitmap_file_size 104857600
  • innodb_max_changed_pages 1000000
  • innodb_mtflush_threads 8
  • innodb_prefix_index_cluster_optimization OFF
  • innodb_sched_priority_cleaner 19
  • innodb_scrub_log OFF
  • innodb_scrub_log_speed 256
  • innodb_show_locks_held 10
  • innodb_show_verbose_locks 0
  • innodb_simulate_comp_failures 0
  • innodb_stats_modified_counter 0
  • innodb_stats_traditional ON
  • innodb_track_changed_pages OFF
  • innodb_use_atomic_writes OFF
  • innodb_use_fallocate OFF
  • innodb_use_global_flush_log_at_trx_commit ON
  • innodb_use_mtflush OFF
  • innodb_use_stacktrace OFF
  • innodb_use_trim OFF
  • join_buffer_space_limit 2097152
  • join_cache_level 2
  • key_cache_file_hash_size 512
  • key_cache_segments 0
  • last_gtid
  • log_slow_filter admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
  • log_slow_rate_limit 1
  • log_slow_verbosity
  • log_tc_size 24576
  • loglevel 3
  • max_long_data_size 4194304
  • max_statement_time 0.000000
  • mrr_buffer_size 262144
  • myisam_block_size 1024
  • mysql56_temporal_format ON
  • old_mode
  • optimizer_selectivity_sampling_limit 100
  • optimizer_use_condition_selectivity 1
  • plugin_maturity unknown
  • progress_report_time 5
  • query_cache_strip_comments OFF
  • relay_log_sync_threshold 134217728
  • relay_log_sync_timeout 200
  • relay_log_sync_txn_count 5
  • replicate_annotate_row_events OFF
  • replicate_do_db
  • replicate_do_table
  • replicate_events_marked_for_skip REPLICATE
  • replicate_ignore_db
  • replicate_ignore_table
  • replicate_wild_do_table
  • replicate_wild_ignore_table
  • rowid_merge_buff_size 8388608
  • rpl_semi_sync_master_enabled OFF
  • rpl_semi_sync_master_timeout 10000
  • rpl_semi_sync_master_trace_level 32
  • rpl_semi_sync_master_wait_no_slave ON
  • rpl_semi_sync_master_wait_point AFTER_COMMIT
  • rpl_semi_sync_slave_enabled OFF
  • rpl_semi_sync_slave_trace_level 32
  • skip_parallel_replication OFF
  • skip_replication OFF
  • slave_current_parallel_transactions 0
  • slave_ddl_exec_mode IDEMPOTENT
  • slave_domain_parallel_threads 0
  • slave_max_parallel_transactions 0
  • slave_parallel_max_queued 131072
  • slave_parallel_mode conservative
  • slave_parallel_threads 0
  • slave_run_triggers_for_rbr NO
  • sqlasyn OFF
  • sqlasyntimeout 10
  • sqlasynwarntimeout 3
  • strict_password_validation ON
  • thread_pool_high_prio_mode transactions
  • thread_pool_high_prio_tickets 4294967295
  • thread_pool_idle_timeout 60
  • thread_pool_max_threads 1000
  • thread_pool_oversubscribe 3
  • thread_pool_oversubscribe_parall 1
  • thread_pool_size 8
  • thread_pool_stall_limit 500
  • use_stat_tables NEVER
  • userstat OFF
  • version_malloc_library system
  • version_ssl_library OpenSSL 1.0.2d 9 Jul 2015
  • wsrep_auto_increment_control ON
  • wsrep_causal_reads OFF
  • wsrep_certify_nonpk ON
  • wsrep_cluster_address
  • wsrep_cluster_name my_wsrep_cluster
  • wsrep_convert_lock_to_trx OFF
  • wsrep_data_home_dir /data/home/tdengine/dongzhi/src/tdsql-mariadb-10.1.9-release1/build_dongzhi/mysql-test/var/mysqld.1/data/
  • wsrep_dbug_option
  • wsrep_debug OFF
  • wsrep_desync OFF
  • wsrep_dirty_reads OFF
  • wsrep_drupal_282555_workaround OFF
  • wsrep_forced_binlog_format NONE
  • wsrep_gtid_domain_id 0
  • wsrep_gtid_mode OFF
  • wsrep_load_data_splitting ON
  • wsrep_log_conflicts OFF
  • wsrep_max_ws_rows 131072
  • wsrep_max_ws_size 1073741824
  • wsrep_mysql_replication_bundle 0
  • wsrep_node_address
  • wsrep_node_incoming_address AUTO
  • wsrep_node_name
  • wsrep_notify_cmd
  • wsrep_on OFF
  • wsrep_osu_method TOI
  • wsrep_patch_version wsrep_25.11
  • wsrep_provider none
  • wsrep_provider_options
  • wsrep_recover OFF
  • wsrep_replicate_myisam OFF
  • wsrep_restart_slave OFF
  • wsrep_retry_autocommit 1
  • wsrep_slave_fk_checks ON
  • wsrep_slave_threads 1
  • wsrep_slave_uk_checks OFF
  • wsrep_sst_auth
  • wsrep_sst_donor
  • wsrep_sst_donor_rejects_queries OFF
  • wsrep_sst_method rsync
  • wsrep_sst_receive_address AUTO
  • wsrep_start_position 00000000-0000-0000-0000-000000000000:-1
  • wsrep_sync_wait 0

5.3 仅存在与mysql5.6中的变量

  • avoid_temporal_upgrade OFF
  • bind_address *
  • binlog_error_action IGNORE_ERROR
  • binlog_gtid_simple_recovery OFF
  • binlog_max_flush_queue_time 0
  • binlog_order_commits ON
  • binlog_rows_query_log_events OFF
  • binlogging_impossible_mode IGNORE_ERROR
  • block_encryption_mode aes-128-ecb
  • core_file ON
  • disconnect_on_expired_password ON
  • end_markers_in_json OFF
  • enforce_gtid_consistency OFF
  • eq_range_index_dive_limit 1
  • gtid_executed
  • gtid_mode OFF
  • gtid_next AUTOMATIC
  • gtid_owned
  • gtid_purged
  • innodb_tmpdir
  • log_bin_use_v1_row_events OFF
  • log_slow_admin_statements OFF
  • log_slow_slave_statements OFF
  • log_throttle_queries_not_using_indexes 0
  • master_info_repository FILE
  • new OFF
  • optimizer_trace enabled=off,one_line=off
  • optimizer_trace_features greedy_search=on,range_optimizer=on,dynamic_range=on,repeated_subselect=on
  • optimizer_trace_limit 1
  • optimizer_trace_max_mem_size 16384
  • optimizer_trace_offset -1
  • relay_log_info_repository FILE
  • rpl_stop_slave_timeout 31536000
  • server_id_bits 32
  • server_uuid 9078a55d-6904-11e6-bfa9-ecf4bbcdc829
  • sha256_password_private_key_path private_key.pem
  • sha256_password_public_key_path public_key.pem
  • show_old_temporals OFF
  • simplified_binlog_gtid_recovery OFF
  • slave_allow_batching OFF
  • slave_checkpoint_group 512
  • slave_checkpoint_period 300
  • slave_parallel_workers 0
  • slave_pending_jobs_size_max 16777216
  • slave_rows_search_algorithms TABLE_SCAN,INDEX_SCAN
  • table_open_cache_instances 1
  • transaction_allow_batching OFF