MySQL8.4 LTS使用尝鲜

2024年 5月 8日 68.5k 0

MySQL8.4 LTS发布

Oracle 在2024年4月30日发布了 MySQL 8.4 版本(LTS), 该版本是创新版的第一个长期支持版本。

MySQL8.4功能变更

下面只介绍部分功能变更,详情请参考官网。

1、MySQL密码认证

从 MySQL 8.4.0 开始,mysql_native_password 认证插件默认不再启用。
若要启用,需要在启动MySQL的时候,添加--mysql-native-password=ON 参数,或者在配置文件my.cnf中设置mysql_native_password=ON。

2、InnoDB系统变量默认值

Table 1.1 InnoDB system variable default values in MySQL 8.4 differing from MySQL 8.0
MySQL8.4 LTS使用尝鲜-1
[a] The actual default value of this variable is OFF; this is unchanged from MySQL 8.0.
[b] Deprecated in MySQL 8.0.26.

3、Clone插件

克隆插件的版本控制要求被放宽,允许在同一系列的不同点版本之间进行克隆。换句话说,只有主版本号和次版本号必须匹配,而以前的点版本号也必须匹配。
例如,clone功能现在允许从 8.4.0 到 8.4.14克隆,反之亦然。

4、SOURCE_RETRY_COUNT变化

CHANGE REPLICATION SOURCE TO语句的SOURCE_RETRY_COUNT选项的默认值更改为10。这意味着,使用此选项和SOURCE_CONNECT_RETRY(60)的默认值,replica在重新连接尝试之间等待60秒,并在超时和failover之前以此速率尝试重新连接10分钟。
此更改也适用于已弃用的——master-retry-count server选项的默认值。(您应该使用SOURCE_RETRY_COUNT。)

5、mysqldump中增加output-as-version选项

该选项支持从8.2或者更新版本的MySQL服务器创建的dump兼容旧版本的MySQL。该选项值为SERVER、BEFORE_8_2_0、BEFORE_8_0_23。

SERVER: 获取服务器的版本,并使用与该MySQL版本兼容的复制语句和变量名的最新版本。

BEFORE_8_2_0: 输出兼容从8.0.23到 8.1.0的mysql服务器版本。

BEFORE_8_0_23: 输出兼容8.0.23之前的MySQL服务器版本。

6、组复制

group_replication_set_as_primary
在选择新的主节点之前,等待所有正在进行的DDL语句(例如ALTER TABLE)完成。

group_replication_consistency
系统变量的默认值改为BEFORE_ON_PRIMARY_FAILOVER,以前的版本中是EVENTUAL。

group_replication_exit_state_action
系统变量的默认值改为 OFFLINE_MODE,以前的版本中READ_ONLY。

7、直方图自动更新

MySQL 8.4.0支持直方图自动更新。可以通过为ANALYZE TABLE语句包含AUTO UPDATE选项来为给定的直方图启用该功能。要禁用它,请改为包含MANUAL UPDATE。如果没有指定任何选项,则默认为MANUAL UPDATE(不自动更新)。

8、Thread pool插件连接信息

增加了tp_connections表,记录每个线程池的连接信息。

tp_thread_state表中增加了列: TIME_OF_ATTACH, MARKED_STALLED, STATE, EVENT_COUNT, ACCUMULATED_EVENT_TIME, EXEC_COUNT, and ACCUMULATED_EXEC_TIME

tp_thread_group_state表中增加了列: EFFECTIVE_MAX_TRANSACTIONS_LIMIT, NUM_QUERY_THREADS, TIME_OF_LAST_THREAD_CREATION, NUM_CONNECT_HANDLER_THREAD_IN_SLEEP, THREADS_BOUND_TO_TRANSACTION, QUERY_THREADS_COUNT, and TIME_OF_EARLIEST_CON_EXPIRE.

9、expire_logs_days系统变量废弃

使用binlog_expire_logs_seconds取代expire_logs_days。binlog_expire_logs_seconds设置binlog的有效期,单位是秒(s)。

10、过时的复制选项和变量

许多与MySQL复制相关的选项和变量在以前的MySQL版本中已被弃用,并已从MySQL 8.4中删除。
--slave-rows-search-algorithms:复制应用程序在应用更新或删除时,查找表行的算法现在总是HASH_SCAN、INDEX_SCAN,并且不再由用户配置。

log_bin_use_v1_events:允许运行MySQL 5.7及更新版本的源服务器复制到早期版本的MySQL时,早期版本的MySQL不再支持或维护。

--relay-log-info-file,--relay-log-info-repository,--master-info-file,--master-info-repository:应用程序元数据存储库和连接元数据存储库使用的文件已被crash-safe表取代,不再支持。

transaction_write_set_extraction

group_replication_ip_whitelist:使用group_replication_ip_allowlist代替。

group_replication_primary_member:不再需要;使用Performance Schema的replication_group_members表的MEMBER_ROLE列替换。

11、复制相关的SQL语法

已经被删除的与复制source服务器相关的语句如下:
CHANGE MASTER TO: Use CHANGE REPLICATION SOURCE TO.
RESET MASTER: Use RESET BINARY LOGS AND GTIDS.
SHOW MASTER STATUS: Use SHOW BINARY LOG STATUS.
PURGE MASTER LOGS: Use PURGE BINARY LOGS.
SHOW MASTER LOGS: Use SHOW BINARY LOGS.

已经被删除的与replicas相关的语句如下:
START SLAVE: Use START REPLICA.
STOP SLAVE: Use STOP REPLICA.
SHOW SLAVE STATUS: Use SHOW REPLICA STATUS.
SHOW SLAVE HOSTS: Use SHOW REPLICAS.
RESET SLAVE: Use RESET REPLICA.

此外,以前由CHANGE REPLICATION SOURCE TO和START REPLICA支持的一些已弃用的选项已被删除,并且不再被服务器接受。

MySQL8.4下载

下载地址:https://dev.mysql.com/downloads/mysql/
MySQL8.4 LTS使用尝鲜-2

MySQL8.4安装使用

--使用root用户安装
cd /opt
--解压安装包
tar -xvf mysql-8.4.0-1.el7.x86_64.rpm-bundle.tar
--依次安装rpm包
rpm -ivh mysql-community-client-plugins-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.4.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.4.0-1.el7.x86_64.rpm
--查看缺省的root密码
grep -i root /var/log/mysqld.log
--使用缺省的root密码登录数据库,第一次登录后需要修改root用户的密码
mysql> alter user 'root'@'localhost' identified by 'Wel%1234';
mysql> flush privileges;
--使用修改后的密码登录数据库
[root@node1 opt]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.4.0 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.4.0 |
+-----------+
1 row in set (0.00 sec)
mysql>

--创建远程登录账号
mysql> create user root@'192.%' identified by 'Wel%1234';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to root@'192.%' ;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

--服务启停&查看
systemctl start mysqld
systemctl stop mysqld
systemctl status mysqld

安装过程中碰到的问题

[root@node1 opt]# rpm -ivh mysql-community-client-8.4.0-1.el7.x86_64.rpm
warning: mysql-community-client-8.4.0-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
error: Failed dependencies:
mysql-community-libs(x86-64) >= 8.0.11 is needed by mysql-community-client-8.4.0-1.el7.x86_64
mariadb is obsoleted by mysql-community-client-8.4.0-1.el7.x86_64
解决办法: yum remove mysql-libs

附录、参考文档

https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/index.html
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论