1.mysql8.0被弃用的特性
- validate_password在未来新版本将被弃用
- alter tablespace和drop tablesapce engine被弃用
- pad_char_to_full_length的SQL模式被弃用
- 在创建临时表中TABLESPACE = innodb_file_per_table and TABLESPACE = innodb_temporary被弃用
2.mysql8.0中新参数/变量或表代替旧的参数/变量/表
旧参数或表 | 代替的参数或表 |
---|---|
utf8mb3 | utf8mb4 |
json_merge() | json_merge_preserve() |
json_append() | json_array_append() |
information_schema_stats | information_schama_stats_expiry |
tx_isolation | transaction_isolation |
tx_read_only | transaction_read_only |
log_warnings和--log-warnings | log_error_verbosity |
表:information_schema_innodb_locks | 表:data_locks |
表:innodb_lock_waits | 表:data_lock_waits |
3.information_schema部分系统视图被重新命名,见下表
old name | new name |
---|---|
innodb_sys_columns | innodb_colums |
innodb_sys_datafiles | innodb_datafiles |
innodb_sys_fileds | innodb_fileds |
innodb_sys_foreign | innodb_foreign |
innodb_sys_foreign_cols | innodb_foreign_cols |
innodb_sys_indexes | innodb_indexes |
innodb_sys_tables | innodb_tables |
innodb_sys_tablespaces | innodb_tablespaces |
innodb_sys_tablestats | innodb_tablestats |
innodb_sys_virtual | innodb_virtual |
4.关于用户管理
- 不能再使用grant授权的方式创建用户
- 移除set password … = password(‘auth_string’)修改密码的方式
- 移除系统变量old_passwords
mysql8.0移除了查询缓存以及相关参数
- flush query cache和reset query cache语句被移除
- 在select查询中使用sql_cache修饰符不移除,sql_no_noche和ndb_cache_check_time被弃用
- have_query_cache系统变量被弃用,将来版本将会被移除
变量类型 | 参数 |
---|---|
系统变量 | query_cache_limit query_cacahe_min_res_unit query_cache_size query_cache_type query_cache_wlock_invalidate |
状态变量 | qcache_free_blocks qcache_free_memory qcache_hits qcache_inserts qcache_lowmem_prunes qcaches_not_cached qcache_queries_in_cahce qcache_tatal_blocks |
线程状态 | checking privileges on cached query checking query cache for query invalidating query cache entries sending cached result to client storing result in query cache Waiting for query cache locked |
5.mysql8.0中被移除系统变量或参数选项或函数
- --ignore-db-dir和系统的变量ignore_db_dirs被移除
- sync_frm被移除,.frm文件也被弃用
- 客户端工具中的--secure-auth选项被移除
- 系统变量:muli_range_count,metadata_locks_cache_size,metada_locks_hash_instances,data_format,datetime_format,time_format,max_tmp_tables
- 加密相关函数,如encode()和decode(),encrypt()
- sql_mode中的DB2, MAXDB, MSSQL, MYSQL323,MYSQL40, ORACLE, POSTGRESQL,NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS中值被移除
- 全局变量sql_log_bin变量已经被移除,只能用于session变量中
6.mysql8.0中关于sql语法使用被移除
-
移除了group by排序的限定符asc和desc,只能用order by进行排序
-
EXPLAIN语句的EXTENDED和PARTITIONS关键字已被移除
-
解析器不再将\N作为SQL语句中NULL的同义词。使用NULL代替。这种改变可能对于含有\N数据导入有影响
-
PROCEDURE ANALYSE()使用语法被移除
7.关于innodb文件格式参数定义被移除
- innodb_file_format,innodb_file_format_check,innodb_file_format_max,innodb_large_prefix