欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL9.0的兩種部署模式及各個版本發(fā)布的新功能

 更新時間:2024年08月01日 11:30:02   作者:XingYuyu_Coder  
本文主要介紹了MySQL9.0的兩種部署模式及各個版本發(fā)布的新功能,文中通過圖文示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.MySQL 9.0 創(chuàng)新版發(fā)布

Oracle 每季度發(fā)布一次 MySQL 更新,2024年7月1日推出了最新的 MySQL 9.0 創(chuàng)新版本。

MySQL發(fā)布模型分為兩個主要軌道:LTS(長期支持)和創(chuàng)新。所有LTS和Innovation版本都包含錯誤和安全修復,并被視為生產(chǎn)級質(zhì)量。

image-20240702152346542

1.1 MySQL 9.0 功能進化

1.1.1 添加或更改的功能

1.從MySQL 9.0.0開始支持將
EXPLAIN ANALYZE的JSON輸出保存到用戶變量中

EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

mysql> EXPLAIN FORMAT=JSON INTO @myupdate 
    ->   UPDATE a SET name2 = "garcia" WHERE id = 3;              
mysql> SELECT @myupdate, @mydelete\G
*************************** 1. row ***************************
@myupdate: {
  "query_block": {
    "select_id": 1,
    "table": {
      "update": true,
      "table_name": "a",
      "access_type": "range",
      "possible_keys": [
        "PRIMARY"
      ],
      "key": "PRIMARY",
      "used_key_parts": [
        "id"
      ],
      "key_length": "4",
      "ref": [
        "const"
      ],
      "rows_examined_per_scan": 1,
      "filtered": "100.00",
      "attached_condition": "(`db`.`a`.`id` = 3)"
    }
  }
}
2.Event DDL in prepared statements
MySQL 9.0提供了對服務(wù)器端準備語句的支持,那有什么好處呢?
a.減少每次執(zhí)行語句時解析語句的開銷。
通常,數(shù)據(jù)庫應(yīng)用程序處理大量幾乎相同的語句,
只更改子句中的文字或變量值,
如用于查詢和刪除的WHERE、用于更新的SET和用于插入的values。
b.防止SQL注入攻擊。
參數(shù)值可以包含未加轉(zhuǎn)義的SQL引號和分隔符。

--使用方法如下:
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;

3.新增2個性能架構(gòu)系統(tǒng)變量表

(1)variables_metadata表
提供了有關(guān)系統(tǒng)變量的一般信息。
這些信息包括MySQL服務(wù)器識別的每個系統(tǒng)變量的
名稱、范圍、類型、范圍(如適用)和描述。

(2)global_variable_attributes表
提供了有關(guān)服務(wù)器分配給全局系統(tǒng)變量的屬性值對的信息。

1.1.2 棄用的功能

能架構(gòu)variables_info表列的MIN_VALUE和MAX_VALUE列現(xiàn)在已被棄用,
請使用variables_metadata表中具有相同名稱的列

1.1.3 刪除的功能

為了向后兼容,mysql_native_password在客戶端上仍然可用,因此mysql 9.0客戶端程序可以連接到早期版本的mysql服務(wù)器。在MySQL 9.0中,以前版本的客戶端程序中內(nèi)置的MySQL本地身份驗證插件已轉(zhuǎn)換為必須在運行時加載的插件。

其實從mysql 8.0中不推薦使用的mysql_native_password身份驗證插件已被刪除。
服務(wù)器現(xiàn)在拒絕來自不具有client_PLUGIN_AUTH
功能的舊客戶端程序的mysql_native身份驗證請求
由于此更改,9.0還刪除了以下服務(wù)器選項和變量:
–mysql本機密碼服務(wù)器選項
–mysql本機密碼代理用戶服務(wù)器選項
–default_authentication_plugin服務(wù)器系統(tǒng)變量

1.2 二進制編譯安裝

下載地址:https://dev.mysql.com/downloads/mysql/

image-20240702153154523

#! /bin/bash
#-----------------------------------------------------
#Author:            XingYuyu
#Date:              2024-07-2
#Blog:              http://8.141.4.74
#Filename:          install_offline_mysql9.0_for_rocky9.sh
#Description:       [在Rocky 8/9離線二進制安裝mysql 9.0]
#-----------------------------------------------------
SRC_DIR=$(pwd)

#MYSQL='mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz'
#MYSQL='mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz'
MYSQL='mysql-9.0.0-linux-glibc2.28-x86_64.tar.xz'
MYSQL_ROOT_PASSWORD='123456'

COLOR='echo -e \E[01;31m'
END='\E[0m'

check () {
    if [ $UID -ne 0 ]; then
        $COLOR"當前用戶不是root, 安裝失敗"$END
        exit 1
    fi

    cd $SRC_DIR

    if [ ! -e $MYSQL ]; then
        $COLOR"缺少${MYSQL}文件"$END
        $COLOR"請將相關(guān)軟件放在${SRC_DIR}目錄下"$END
        exit
    elif [ -e /usr/local/mysql ]; then
        $COLOR"數(shù)據(jù)庫已存在,安裝失敗"$END
        exit
    else
        return
    fi
}

install_mysql () {
    $COLOR"開始安裝MySQL數(shù)據(jù)庫..."$END
    yum -y -q install libaio numactl-libs
    tar xf $MYSQL -C /usr/local/
    MYSQL_DIR=$(echo $MYSQL | sed -nr 's/^(.*[0-9]).*/\1/p')
    ln -s /usr/local/$MYSQL_DIR /usr/local/mysql
    chown -R root.root /usr/local/mysql/
    id mysql &> /dev/null || useradd -s /sbin/nologin -r mysql

    echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
    . /etc/profile.d/mysql.sh
    ln -s /usr/local/mysql/bin/* /usr/bin/

    # Create MySQL configuration file
    cat > /etc/my.cnf <<-EOF
[mysqld]
server-id=$(hostname -I | cut -d. -f4)
log-bin
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF

    [ -d /data/mysql ] || mkdir -p /data/mysql
    chown -R mysql:mysql /data/mysql

    # Initialize MySQL Database
    /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --datadir=/data/mysql

    # Create systemd service file for MySQL
    cat > /etc/systemd/system/mysqld.service <<-EOF
[Unit]
Description=MySQL Server
After=network.target
Wants=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/mysql --socket=/data/mysql/mysql.sock
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
Restart=on-failure
LimitNOFILE=5000

[Install]
WantedBy=multi-user.target
EOF

    # Reload systemd manager configuration
    systemctl daemon-reload
    # Enable mysqld service to start on boot
    systemctl enable mysqld
    # Start mysqld service
    systemctl start mysqld

    if [ $? -ne 0 ]; then
        $COLOR"數(shù)據(jù)庫啟動失敗,退出!"$END
        exit
    fi

    sleep 3
    /usr/local/mysql/bin/mysqladmin -uroot password "$MYSQL_ROOT_PASSWORD" &>/dev/null

    $COLOR"數(shù)據(jù)庫安裝完成"$END
}

check
install_mysql
# 使用上面腳本安裝 MySQL 9.0(前提:將安裝包上傳和腳本上傳到同一目錄下)
[root@Rocky9 src]# bash install_offline_mysql8.3_for_rocky9.sh
開始安裝MySQL數(shù)據(jù)庫...

Upgraded:
  numactl-libs-2.0.16-3.el9.x86_64

Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /etc/systemd/system/mysqld.service.
數(shù)據(jù)庫安裝完成
[root@Rocky9 src]#[root@Rocky9 src]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.0.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> status
--------------
mysql  Ver 9.0.0 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:		9
Current database:
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		9.0.0 MySQL Community Server - GPL
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/data/mysql/mysql.sock
Binary data as:		Hexadecimal
Uptime:			29 sec

Threads: 2  Questions: 10  Slow queries: 0  Opens: 130  Flush tables: 3  Open tables: 46  Queries per second avg: 0.344
--------------

mysql>

1.2.1 新增用戶

默認密碼是:123456,可以在執(zhí)行腳本前通過修改腳本中的變量來自定義數(shù)據(jù)庫密碼

MYSQL_ROOT_PASSWORD=‘123456’

# 修改本地用戶密碼
alter user root@'localhost' identified  by 'xxxx';

# 刷新權(quán)限
flush privileges;

# 查詢當前主機和用戶
 select Host,User from mysql.user;
 
# 新增遠程登錄用戶
create user root@'10.0.0.%' identified by 'xxxx';

# 給創(chuàng)建的用戶賦予權(quán)限
grant all on *.* to root@'10.0.0.%' with grant option;

flush privileges;

1.2.2 向量及 JSON 體驗

mysql&gt; create schema MyDb;
Query OK, 1 row affected (0.00 sec)

mysql&gt; create table vector_json (id int primary key,json_value JSON,vector_value vector);
Query OK, 0 rows affected (0.02 sec)

mysql&gt; INSERT INTO vector_json (id, json_value,vector_value)
    -&gt; VALUES
    -&gt; (1,
    -&gt; JSON_ARRAY(1.0, 2.0, 3.0,4.0),
    -&gt; to_vector('[1,2,3,4]')
    -&gt; );
Query OK, 1 row affected (0.01 sec)

mysql&gt; select
    -&gt; id,
    -&gt; json_value,
    -&gt; VECTOR_DIM(vector_value)
    -&gt; from vector_json;
+----+----------------------+--------------------------+
| id | json_value           | VECTOR_DIM(vector_value) |
+----+----------------------+--------------------------+
|  1 | [1.0, 2.0, 3.0, 4.0] |                        4 |
+----+----------------------+--------------------------+
1 row in set (0.00 sec)

mysql&gt;

1.2.3 完整的/etc/my.cnf

由于是二進制文件安裝,數(shù)據(jù)庫參數(shù)文件需要自己配置

cat >> /etc/my.cnf << "EOF"
[mysqld]
server_id = 8103306
default-storage-engine= InnoDB
basedir=/mysql/app/mysql8.1.0
datadir=/mysql/data/mysql3306/data/
socket=/mysql/data/mysql3306/socket/mysql.sock
log-error=/mysql/data/mysql3306/log/mysqld.log
pid-file=/mysql/data/mysql3306/pid/mysqld.pid
port=3306
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password # 加此參數(shù)可遠程登陸
transaction_isolation=READ-COMMITTED
max_connections=1500
back_log=500
wait_timeout=1800
max_user_connections=800
innodb_buffer_pool_size=1024M
innodb_log_file_size=512M
innodb_log_buffer_size=40M
slow_query_log=ON
long_query_time=5
# log settings #
slow_query_log = ON
slow_query_log_file = /mysql/data/mysql3306/slowlog/slow3306.log
log_error = /mysql/data/mysql3306/errlog/err3306.log
log_error_verbosity = 3
log_bin = /mysql/data/mysql3306/binlog/mysql_bin
log_bin_index = /mysql/data/mysql3306/binlog/mysql_binlog.index
general_log_file = /data/mysql/mysql3306/generallog/general.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
expire_logs_days = 90
binlog_expire_logs_seconds = 2592000      #30d
long_query_time = 2
min_examined_row_limit = 100
log_throttle_queries_not_using_indexes = 1000
innodb_flush_log_at_trx_commit=1

EOF

1.3 通過 yum 來安裝 RPM 包的方式

image-20240702161124669

# 安裝依賴
yum -y install lrzsz wget perl-Digest-MD5
yum -y install numactl
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

# 添加用戶、用戶組
groupadd mysql
useradd -g mysql --no-create-home -s /sbin/nologin mysql

# 上傳安裝包并解壓
mkdir /data/mysql -pv
tar -xf mysql-9.0.0-1.el9.x86_64.rpm-bundle.tar -C /data/mysql/
cd /data/mysql/
# 修改所屬主,所屬組
[root@Rocky9 data]# chown -R mysql:mysql /data/mysql/

# 安裝下面四個即可
# 安裝順序:包之間相互依賴,所以必須注意安裝順序
? 先裝 common 
? 再裝 libs
? 再裝 client
? 最后裝 server
rpm -ivh mysql-community-common-9.0.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-9.0.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-9.0.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-server-9.0.0-1.el9.x86_64.rpm

通過 yum 的方式來自動處理軟件包的依賴關(guān)系

[root@Rocky9 mysql]# yum -y install mysql-community-*
Last metadata expiration check: 0:47:48 ago on Tue 02 Jul 2024 03:47:49 PM CST.
Dependencies resolved.
=================================================================================================================================================================================================================
 Package                                                                Architecture                         Version                                            Repository                                  Size
=================================================================================================================================================================================================================
Installing:
 mysql-community-client                                                 x86_64                               9.0.0-1.el9                                        @commandline                               3.0 M
 mysql-community-client-debuginfo                                       x86_64                               9.0.0-1.el9                                        @commandline                                22 M
 mysql-community-client-plugins                                         x86_64                               9.0.0-1.el9                                        @commandline                               1.4 M
 mysql-community-client-plugins-debuginfo                               x86_64                               9.0.0-1.el9                                        @commandline                               2.7 M
 mysql-community-common                                                 x86_64                               9.0.0-1.el9                                        @commandline                               581 k
 mysql-community-debuginfo                                              x86_64                               9.0.0-1.el9                                        @commandline                               8.8 M
 mysql-community-debugsource                                            x86_64                               9.0.0-1.el9                                        @commandline                                17 M
 mysql-community-devel                                                  x86_64                               9.0.0-1.el9                                        @commandline                               7.3 M
 mysql-community-icu-data-files                                         x86_64                               9.0.0-1.el9                                        @commandline                               2.3 M
 mysql-community-libs                                                   x86_64                               9.0.0-1.el9                                        @commandline                               1.5 M
 mysql-community-libs-compat                                            x86_64                               9.0.0-1.el9                                        @commandline                               1.4 M
 mysql-community-libs-compat-debuginfo                                  x86_64                               9.0.0-1.el9                                        @commandline                               2.5 M
 mysql-community-libs-debuginfo                                         x86_64                               9.0.0-1.el9                                        @commandline                               2.6 M
 mysql-community-server                                                 x86_64                               9.0.0-1.el9                                        @commandline                                50 M
 mysql-community-server-debug                                           x86_64                               9.0.0-1.el9                                        @commandline                                24 M
 mysql-community-server-debug-debuginfo                                 x86_64                               9.0.0-1.el9                                        @commandline                               154 M
 mysql-community-server-debuginfo                                       x86_64                               9.0.0-1.el9                                        @commandline                               192 M
 mysql-community-test                                                   x86_64                               9.0.0-1.el9                                        @commandline                               336 M
 mysql-community-test-debuginfo                                         x86_64                               9.0.0-1.el9                                        @commandline                                23 M
Upgrading:

[root@Rocky9 mysql]# rpm -qa | grep mysql
mysql-community-debugsource-9.0.0-1.el9.x86_64
mysql-community-debuginfo-9.0.0-1.el9.x86_64
mysql-community-client-plugins-9.0.0-1.el9.x86_64
mysql-community-common-9.0.0-1.el9.x86_64
mysql-community-libs-9.0.0-1.el9.x86_64
mysql-community-client-9.0.0-1.el9.x86_64
mysql-community-icu-data-files-9.0.0-1.el9.x86_64
mysql-community-server-9.0.0-1.el9.x86_64
mysql-community-server-debug-9.0.0-1.el9.x86_64
mysql-community-test-9.0.0-1.el9.x86_64
mysql-community-devel-9.0.0-1.el9.x86_64
mysql-community-libs-compat-9.0.0-1.el9.x86_64
mysql-community-client-debuginfo-9.0.0-1.el9.x86_64
mysql-community-client-plugins-debuginfo-9.0.0-1.el9.x86_64
mysql-community-libs-compat-debuginfo-9.0.0-1.el9.x86_64
mysql-community-libs-debuginfo-9.0.0-1.el9.x86_64
mysql-community-server-debug-debuginfo-9.0.0-1.el9.x86_64
mysql-community-server-debuginfo-9.0.0-1.el9.x86_64
mysql-community-test-debuginfo-9.0.0-1.el9.x86_64
[root@Rocky9 mysql]#

# 啟動mysql
[root@Rocky9 mysql]# systemctl enable --now mysqld
[root@Rocky9 mysql]#

# 獲取臨時密碼
[root@Rocky9 mysql]# cat /var/log/mysqld.log  | grep temporary
2024-07-02T09:05:09.190201Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: J3E7ZjT8uc=/
[root@Rocky9 mysql]# mysql -uroot -p'J3E7ZjT8uc=/'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.0.0

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>alter user root@'localhost' identified  by 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

# 修改一下密碼策略,也是不允許的,只能先改一下密碼然后再修改策略
mysql> SET GLOBAL validate_password.policy = LOW;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
Query OK, 0 rows affected (0.01 sec)

mysql> SET GLOBAL validate_password.policy = LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL validate_password.length = 6;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0     |
| validate_password.check_user_name               | ON    |
| validate_password.dictionary_file               |       |
| validate_password.length                        | 6     |
| validate_password.mixed_case_count              | 1     |
| validate_password.number_count                  | 1     |
| validate_password.policy                        | LOW   |
| validate_password.special_char_count            | 1     |
+-------------------------------------------------+-------+
8 rows in set (0.00 sec)

2.MySQL 8.4.0 LTS 發(fā)布

從 MySQL 8.4.0 開始,mysql_native_password 認證插件默認不再啟用。
若要啟用,需要在MySQL啟動的時候,添加–mysql-native-password=ON 參數(shù);或在配置文件中設(shè)置 mysql_native_password=ON。

MySQL 8.4,還調(diào)整了與 InnoDB 存儲引擎相關(guān)的多個服務(wù)器系統(tǒng)變量的默認值
其余的一些變更,大家詳細的閱讀官網(wǎng)即可

安裝方式參考上面9.0.

3.MySQL 8.3.0 發(fā)布

3.1 標簽化 GTID

此增強功能使為特定事務(wù)組的GTID分配唯一名稱成為可能。
例如,只需比較包含數(shù)據(jù)操作的事務(wù)的GTID,就可以很容易地將其與管理操作產(chǎn)生的事務(wù)區(qū)分開來。

管理員現(xiàn)在可以將SET@gtid_next=AUTOMATIC:<TAG>或SET@gtid_next=<UUID>:<TAG>:NUMBER的
使用限制為所需的MySQL用戶或角色集,以便只有與給定數(shù)據(jù)或操作域相關(guān)的用戶才能提交具有指定標記的新事務(wù)。

該版本新增了TRANSACTION_GTID_TAG權(quán)限,它允許設(shè)置 GTID 值,讓管理員能夠控制權(quán)限分配,優(yōu)化事務(wù)管理。

3.2 JSON EXPLAIN 格式

添加了explain_json_format_version系統(tǒng)變量,以確定explain format=json語句使用的json輸出格式的版本。

它允許管理員在EXPLAIN FORMAT=JSON命令中,在兩種不同的 JSON 輸出格式之間進行選擇。

這一特性保證了軟件與 MySQL 優(yōu)化器未來版本的兼容性,增強了長期使用的便利性

3.3 身份驗證說明

Microsoft Windows:Windows平臺現(xiàn)在支持執(zhí)行基于sasl的ldap身份驗證的服務(wù)器端authentication_ldap_sasl插件。
這意味著Windows客戶端程序現(xiàn)在可以使用GSSAPI和Kerberos,使用authentication_ldap_sasl_client插件進行身份驗證。

3.4 可插拔身份驗證

從本版本開始,調(diào)試PAM身份驗證插件時使用的 AUTHENTICATION_PAM_LOG 環(huán)境變量的行為更改如下:
將AUTHENTICATION_PAM_LOG設(shè)置為任意值(除非下一項中另有說明),其診斷消息中不再包含密碼。
要在診斷消息中包括密碼,請設(shè)置AUTHENTICATION_PAM_LOG=PAM_LOG_WITH_SECRET_INFO

3.5 線程池新增信息

在MySQL性能架構(gòu)中添加了額外的線程池連接信息,如下所示:
添加了一個tp_connections表,其中包含有關(guān)每個線程池連接的信息。

將以下列添加到tp_thread_state表中:

TIME_OF_ATTACH、
MARKED_STALLED、
state、EVENT_COUNT、
ACCUMULATED_EVENT_TIME、
EXEC_COUNT和ACCUMULATED_EXEC_TIME

將以下列添加到tp_thread_group_state表中:

EFECTIVE_MAX_TRANSACTION_LIMIT、
NUM_QUERY_THREADS、
TIME_OF_LAST_thread_CREATION、
NUM_CONNECT_HANDLER_THREADD_IN_SLEEP、
THREADS_BOUND_to_TRANSACTION、
QUERY_THRADS_COUNT和TIME_OF_EARLIEST_CONN_EXPIRE

3.6 刪減功能

一些關(guān)鍵的 C API 函數(shù),比如mysql_kill()、mysql_list_fields()等,已被移除,建議采用其他方式來執(zhí)行類似操作。

用于清理主機名內(nèi)部緩存的FLUSH HOSTS命令(之前已經(jīng)被棄用),也正式從系統(tǒng)中移除了。管理員現(xiàn)在需要通過其他方法來清理主機緩存。

還有一些復制和服務(wù)器的相關(guān)選項,例如–slave-rows-search-algorithms和–log_bin_use_v1_events也已被移除,引導管理員采用更有效、更現(xiàn)代的操作方法。

4.MySQL 8.1.0 發(fā)布

4.1 密碼參數(shù)

增加了一個新的系統(tǒng)參數(shù),用于限制用戶改密碼時的最少替換字符數(shù)。
validate_password.changed_characters_percentage,該值是百分比。

4.2 錯誤日志加強

隨著 MySQL 服務(wù)器、插件和組件的啟動和關(guān)閉消息的增加,關(guān)閉過程的日志記錄得到了增強。這些消息現(xiàn)在也被記錄為關(guān)閉連接。
這些附加功能應(yīng)該有助于故障排除和調(diào)試問題,特別是在服務(wù)器需要很長時間才能關(guān)閉的情況下。

此版本引入了一系列新的消息,這些消息會在MySQL錯誤日志中記錄,包括以下內(nèi)容:

  • MySQLserver的啟動和關(guān)閉日志消息,包括使用–initialize參數(shù)啟動時的日志。
  • 插件關(guān)閉階段的啟動和結(jié)束日志消息。
  • 組件關(guān)閉階段的啟動和結(jié)束日志消息。
  • 連接關(guān)閉階段的開始和結(jié)束日志消息。

在強制斷開連接后仍然活動的線程數(shù)量和ID的日志消息,這些線程可能會導致等待情況。

mysql> show variables like ‘log_error';
±--------------±-----------------------------------------+
| Variable_name | Value |
±--------------±-----------------------------------------+
| log_error | /mysql/data/mysql3306/errlog/err3306.log |
±--------------±-----------------------------------------+

4.3 二進制日志

libmysqlclient.so 共享庫中添加了幾個函數(shù),使開發(fā)人員能夠訪問 MySQL server的二進制日志:
mysql_binlog_open()、mysql_binlog_fetch() 和 mysql_binlog_close()。

4.4 審計日志

審計日志可以指定庫database存儲JSON過濾表。

新增Audit_log_direct_writes系統(tǒng)變量,用于計算直接寫入審計文件的次數(shù)。

MySQL企業(yè)審計使用臨時緩沖區(qū)保存寫入日志文件的查詢事件數(shù)據(jù)。
然而,由于server可能無法為長查詢分配額外內(nèi)存,審計插件已經(jīng)進行了優(yōu)化,在JSON格式記錄日志時,不再使用臨時緩沖區(qū)。

MySQL企業(yè)審計現(xiàn)在支持使用調(diào)度程序組件來配置和執(zhí)行定期任務(wù),以刷新內(nèi)存緩存。

mysql -u root -D database_name -p < audit_log_filter_linux_install.sql

4.5 組復制增強

添加了一些特定于組復制插件的狀態(tài)變量,這些變量可以改進對網(wǎng)絡(luò)不穩(wěn)定的診斷和故障排除,
為每個組成員 (group member) 提供有關(guān)網(wǎng)絡(luò)使用情況、控制消息和數(shù)據(jù)消息的統(tǒng)計信息。

作為這項工作的一部分,Performance Schema 的 replication_group_communication_information 表中添加了一個新列 MEMBER_FAILURE_SUSPICIONS_COUNT 。該列的內(nèi)容被格式化為一個 JSON 數(shù)組,其鍵是組成員 ID,其值是該組成員被認為是可疑的次數(shù)。

4.6 廢棄特性

以下功能在 MySQL 8.1 中已棄用,并且可能會在未來的系列中刪除。如果顯示替代方案,則應(yīng)更新應(yīng)用程序以使用它們。

1.mysqlpump
由于 MySQL 提供了具有相同或額外功能的 mysqldump 和 MySQL Shell 等其他方法來執(zhí)行數(shù)據(jù)庫轉(zhuǎn)儲和備份,
mysqlpump 已經(jīng)變得多余,現(xiàn)在已棄用?,F(xiàn)在調(diào)用這個程序會產(chǎn)生一個警告。您應(yīng)該記住,mysqlpump 可能會在 MySQL 的未來版本中被刪除。

2.binlog_format
binlog_format 服務(wù)器系統(tǒng)變量現(xiàn)已棄用,并且可能會在 MySQL 的未來版本中刪除。 與此變量關(guān)聯(lián)的功能(更改二進制日志記錄格式)也已被棄用。

此更改的含義是,當刪除 binlog_format 時,MySQL 服務(wù)器將僅支持基于行的二進制日志記錄(MySQL 8.0 中的默認設(shè)置)。 因此,新安裝應(yīng)僅使用基于行 (Row) 的二進制日志記錄,而使用基于語句或混合日志記錄格式的現(xiàn)有安裝應(yīng)遷移到基于行的格式。

系統(tǒng)變量 log_bin_trust_function_creators 和 log_statements_unsafe_for_binlog 僅在基于語句的日志記錄上下文中有用,現(xiàn)在也已棄用,因此也將在 MySQL 的未來版本中刪除。

現(xiàn)在設(shè)置或選擇剛才提到的任何變量的值都會引發(fā)警告。 (WL*#13966,WL#15669)*

3.mysql_native_password
mysql_native_password 身份驗證插件現(xiàn)已棄用,并可能在 MySQL 的未來版本中刪除。
如果帳戶嘗試使用 mysql_native_password 作為身份驗證方法進行身份驗證,
他方法來執(zhí)行數(shù)據(jù)庫轉(zhuǎn)儲和備份,
mysqlpump 已經(jīng)變得多余,現(xiàn)在已棄用。現(xiàn)在調(diào)用這個程序會產(chǎn)生一個警告。您應(yīng)該記住,mysqlpump 可能會在 MySQL 的未來版本中被刪除。

4.binlog_format
binlog_format 服務(wù)器系統(tǒng)變量現(xiàn)已棄用,并且可能會在 MySQL 的未來版本中刪除。 與此變量關(guān)聯(lián)的功能(更改二進制日志記錄格式)也已被棄用。

此更改的含義是,當刪除 binlog_format 時,MySQL 服務(wù)器將僅支持基于行的二進制日志記錄(MySQL 8.0 中的默認設(shè)置)。 因此,新安裝應(yīng)僅使用基于行 (Row) 的二進制日志記錄,而使用基于語句或混合日志記錄格式的現(xiàn)有安裝應(yīng)遷移到基于行的格式。

系統(tǒng)變量 log_bin_trust_function_creators 和 log_statements_unsafe_for_binlog 僅在基于語句的日志記錄上下文中有用,現(xiàn)在也已棄用,因此也將在 MySQL 的未來版本中刪除。

現(xiàn)在設(shè)置或選擇剛才提到的任何變量的值都會引發(fā)警告。 (WL*#13966,WL#15669)*

5.mysql_native_password
mysql_native_password 身份驗證插件現(xiàn)已棄用,并可能在 MySQL 的未來版本中刪除。
如果帳戶嘗試使用 mysql_native_password 作為身份驗證方法進行身份驗證,
CREATE USER、ALTER USER 和 SET PASSWORD 操作現(xiàn)在會在服務(wù)器錯誤日志中插入棄用警告。

到此這篇關(guān)于MySQL9.0的兩種部署模式及各個版本發(fā)布的新功能的文章就介紹到這了,更多相關(guān)MySQL9.0兩種部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL如何創(chuàng)建視圖

    MySQL如何創(chuàng)建視圖

    這篇文章主要介紹了MySQL如何創(chuàng)建視圖,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • Mysql使用sum()函數(shù)返回null的問題詳解

    Mysql使用sum()函數(shù)返回null的問題詳解

    MySQL的Sum()函數(shù)是用來找出所有記錄的一個字段的總和,下面這篇文章主要給大家介紹了關(guān)于Mysql使用sum()函數(shù)返回null的問題,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • MySQL?8.0.29?解壓版安裝配置方法圖文教程

    MySQL?8.0.29?解壓版安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了MySQL?8.0.29?解壓版安裝配置方法圖文教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • step by step配置mysql復制的具體方法

    step by step配置mysql復制的具體方法

    每個服務(wù)器必須有唯一的server-id,默認為1,為了防止沖突,一般建議設(shè)置為IP地址的后幾位,本例設(shè)置為12,通過修改主庫的my.cnf文件實現(xiàn)
    2013-09-09
  • mysql中replace into與insert into區(qū)別

    mysql中replace into與insert into區(qū)別

    本文主要介紹了mysql中replace into與insert into區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • MySQL詳解進行JDBC編程與增刪改查方法

    MySQL詳解進行JDBC編程與增刪改查方法

    JDBC是指Java數(shù)據(jù)庫連接,是一種標準Java應(yīng)用編程接口( JAVA API),用來連接 Java 編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC 是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫
    2022-06-06
  • MySQL高可用架構(gòu)之MHA架構(gòu)全解

    MySQL高可用架構(gòu)之MHA架構(gòu)全解

    MHA(Master HA)是一款開源的 MySQL 的高可用程序,它為 MySQL 主從復制架構(gòu)提供了 automating master failover 功能,本文重點給大家介紹MySQL高可用架構(gòu)之MHA架構(gòu)全解,感興趣的朋友一起看看吧
    2021-07-07
  • 講解MySQL中<=>操作符的用法

    講解MySQL中<=>操作符的用法

    這篇文章主要介紹了講解MySQL中<=>操作符的用法,整理自stackoverflow的相關(guān)實際問題,需要的朋友可以參考下
    2015-04-04
  • 阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    我們經(jīng)常會碰到需要遠程訪問數(shù)據(jù)庫的場景,本文主要介紹了阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Mysql多表關(guān)聯(lián)更新方式

    Mysql多表關(guān)聯(lián)更新方式

    這篇文章主要介紹了Mysql多表關(guān)聯(lián)更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論