MySQL 8.0.20 安裝新特性以及一些廢棄引數
8.0 New Feature
(1)授權表現在均為InnoDB
不會再發生一部分成功,一部分失敗的情況,要麼全成功,要麼全部回滾。
Incompatible Change: The grant tables in the mysql system database are now InnoDB (transactional) tables.
Previously, these were MyISAM (nontransactional) tables.
This change applies to these tables: user, db, tables_priv, columns_priv, procs_priv, proxies_priv
Previously, an account-management statement that named multiple users could succeed for some users and fail for others.
Now, each statement is transactional and either succeeds for all named users or rolls back and has no effect if any error occurs.
The statement is written to the binary log if it succeeds, but not if it fails; in that case, rollback occurs and no changes are made
(2)MySQL開始支援role角色
MySQL now supports roles
(3)引數變化
expire-logs-days # 已經廢棄,binlog_expire_logs_seconds取代,預設為30天
innodb_undo_tablespaces # 已經廢棄,innodb總會建立2個undo表空間,需要增加,使用CREATE UNDO TABLESPACE
internal_tmp_disk_storage_engine # 已經廢棄,8.0.16開始內部磁碟臨時表預設均為InnoDB儲存引擎。
character-set-server=utf8 #現在該引數utf8為utf8mb3別名,以後將改為utf8mb4
innodb_read_only # 原來只對InnoDB表生效,無法creating dropping,現在對所有表生效。
--log-tc-size #The hardcoded memory page size of 8KB for the memory-mapped
# transaction coordinator was too small for platforms such as
# ARM64 and PowerPC where the page size is much larger.
# 現在預設為記憶體頁的6倍。
validate_password_check_user_name # 現在預設開啟
validate_password # 預設開啟,會拒絕與當前使用者名稱相同的密碼。
innodb_deadlock_detect # 可以禁止死鎖檢測,防止多執行緒等待同一個鎖引發處理緩慢,可以透過設定 innodb_lock_wait_timeout
innodb_checksum_algorithm # 在5.6.3中取代了引數innodb_checksums
innodb_flush_method # 現在預設值Unix為fsync,windows為unbuffered
innodb_support_xa # 被移除, 預設支援兩階段提交
(4)mysql設定引數新引入SET PERSIST
SET PERSIST # SET引入設定可以動態global引數的同時會將引數持久化到data目錄下的mysqld-auto.cnf檔案,伺服器啟動會載入。
performance_schema.variables_info # 可以顯示最近修改的引數以及源。
(5)物理檔案變化
INFORMATION_SCHEMA.TABLES VERSION:.frm .trg .trn檔案將不存在,取而代之的均為資料字典,version欄位寫死為10,這是最後一個
支援.frm的版本MySQL 5.7的版本號。
(6)mysql_install_db已經被移出
mysql_install_db:已經被移除,初始化資料庫必須使用mysqld --initialize or --initialize-insecure
(7)引入ibd2sdi新命令列
ibd2sdi:新引入命令列工具,used to extract serialized dictionary information (SDI) from persistent InnoDB tablespaces
(8)支援Hint MERGE NO_MERGE
最佳化器現在支援表級別的hint:MERGE and NO_MERGE
SELECT /*+ MERGE(dt) */ * FROM (SELECT * FROM t1) AS dt;
SELECT /*+ NO_MERGE(dt) */ * FROM (SELECT * FROM t1) AS dt;
(9)支援invisible index
現在支援invisible index,最佳化器不會選擇使用索引,但是會正常維護索引,可以測試移除索引造成影響,又不破壞現有結構。
(10)performance_schema加強
現在performance_schema會收集伺服器錯誤:events_errors_summary_global_by_error,
events_errors_summary_by_account_by_error,
events_errors_summary_by_host_by_error,
events_errors_summary_by_thread_by_error,
events_errors_summary_by_user_by_error
performance_schema_error_size:控制收集錯誤數量。
(11)InnoDB引擎
--分割槽變化
通用分割槽處理器被移除,MySQL 8.0 InnoDB為唯一支援分割槽處理的儲存引擎,
移除分割槽可以用ALTER TABLE ... REMOVE PARTITIONING
升級之前,需要把非InnoDB儲存引擎分割槽表使用ALTER TABLE ... ENGINE=INNODB轉換為InnoDB
--InnoDB檔案變化
InnoDB:當在Data directory外建立表空間時,InnoDB不在建立.isl InnoDB動態連結檔案,
所以不再支援伺服器離線時,修改.isl移動遠端表空間操作,利用redo log定位遠端日誌檔案。
InnoDB:不再支援壓縮臨時表,當row_format=compressed時,innodb_strict_mode為true(default),create temporary table將報錯
(12)新引入資料字典表
INFORMATION_SCHEMA.INNODB_CACHED_INDEXES:顯示索引快取在記憶體中的頁數量。
(13)AUTO_INCREMENT加強
現在將AUTO_INCREMENT值寫入Redo log,寫入儲存引擎系統表,將自增最大值持久化,設定AUTO_INCREMENT=N不在不生效,
手工update AUTO_INCREMENT 列也生效。
(14)5.7與8.0升降級說明
(1)To upgrade to MySQL 8.0 from MySQL 5.7, you must perform the upgrade procedure described at Upgrading MySQL.
(2)Downgrading from MySQL 8.0 to MySQL 5.7 is only supported using the logical downgrade method (a mysqldump downgrade).
In-place downgrades are not supported.
參考:
MySQL 8.0 Reference Manual
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2703977/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP7.4 新特性和廢棄的功能PHP
- C# 9.0 新特性之 Lambda 棄元引數C#
- Ubuntu 24.04 二進位制安裝 MySQL 8.0.20UbuntuMySql
- docker安裝mysql8.0.20並遠端連線DockerMySql
- Bash 指令碼安裝 MySQL-8.0.20 資料庫指令碼MySql資料庫
- MySQL概述以及MySQL的安裝以及啟動MySql
- mysql一些引數的介紹MySql
- Mysql--所有版本安裝以及完全解除安裝MySql
- MySQL 8.0.20 MGR資料遷移過程以及注意事項MySql
- mongod命令的一些引數以及引數--pidfilepath與mongod.lock區別Go
- windows安裝mysql以及安裝Navicat Premium並破解的方法WindowsMySqlREM
- Oracle 12C新特性-資料泵新引數(LOGTIME)Oracle
- MySQL 8.0 新特性MySql
- 伺服器安裝docker 以及使用docker安裝mysql及svn伺服器DockerMySql
- Vue 插槽 廢棄語法Vue
- Vim安裝使用以及一些避坑指南
- Kafka 1.0.0的安裝使用以及一些命令Kafka
- Windows Server 2012配置MySQL 8.0.20 MGRWindowsServerMySql
- Oracle 12C新特性-資料泵新引數(VIEWS_AS_TABLES)OracleView
- go操作redis(已經廢棄)GoRedis
- $.ajax(),$.get(),$.post()的區別,以及一些引數注意規則
- Laravel 8 的一些新特性Laravel
- JVM引數以及用法JVM
- PHP編譯安裝之Configure引數PHP編譯
- PostgreSQL安裝完成後,引數調整SQL
- Oracle安裝相關Linux引數(轉)OracleLinux
- 別亂用了,用新的。Go SliceHeader 和 StringHeader 將會被廢棄!GoHeader
- python安裝MySQL庫引出的一些問題PythonMySql
- Android startActivityForResult()廢棄了,代替方案案例Android
- mysql5.1的新特性MySql
- MySQL8.0-新特性-DescendingIndexMySqlIndex
- Oracle 23C Free下載安裝及新特性Oracle
- nginx 常見引數以及重定向引數配置Nginx
- C# 9.0 新特性之引數非空檢查簡化C#
- C++14的一些新特性C++
- MySQL的安裝以及基本的管理命令和設定MySql
- MYSQL8.0.20-Winx64手動配置方法MySql
- MySQL-18 MySQL8其他新特性MySql