最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?系統(tǒng)變量(查看,修改)

 更新時間:2024年08月04日 11:24:14   作者:南村群童欺我老無力.  
MySQL的系統(tǒng)變量是由MySQL服務器管理的,用于控制服務器的各種行為和特性,本文主要介紹了MySQL?系統(tǒng)變量(查看,修改),感興趣的可以了解一下

MySQL的系統(tǒng)變量是由MySQL服務器管理的,用于控制服務器的各種行為和特性。這些變量由系統(tǒng)提供,不是用戶定義的,并且屬于服務器層面的語法。它們包括全局變量和會話變量。

全局變量:這些變量影響整個MySQL服務器,它們的更改需要具有相應的權限,并且通常需要重啟服務器才能生效。
會話變量:這些變量僅對當前連接到服務器的客戶端有效,每個連接都有自己的會話變量設置。 

 示例:

# 查看所有系統(tǒng)變量
SHOW GLOBAL | SESSION VARIABLES;

# 查看滿足條件的部分系統(tǒng)變量
SHOW GLOBAL | SESSION VARIABLES LIKE '%char%';

# 查看指定的某個系統(tǒng)變量的值
SELECT @@global | session.系統(tǒng)變量名;

# 為某個系統(tǒng)變量賦值
SET GLOBAL | 【SESSION】系統(tǒng)變量名 = 值;

# 使用用戶變量
SET @myvar = 1;
SELECT @myvar;

這里, @@global 或 @@session 是訪問系統(tǒng)變量的特殊形式,用于區(qū)分全局變量和會話變量。

MySQL中的系統(tǒng)變量權限

MySQL的系統(tǒng)變量用于控制服務器的操作。它們可以是全局的(影響整個MySQL服務器實例),也可以是會話的(僅影響當前客戶端會話),或者兩者兼有。

你可以使用SET語句來動態(tài)地改變這些變量的值。例如:

  • 設置全局系統(tǒng)變量的運行時值

使用set global語句,該語句需要system_VARIABLES_ADMIN權限(或不推薦使用的SUPER權限)。例如:

SET GLOBAL max_connections = 1000;
  • 設置會話變量(僅影響當前會話):
SET SESSION sort_buffer_size = 256K;
  • 將全局系統(tǒng)變量的值持久化到 mysqld-auto.cnf 文件(并設置運行時值)

使用set persist語句,該語句需要system_VARIABLES_ADMIN或SUPER權限。

  • 僅將全局系統(tǒng)變量的值持久化到 mysqld-auto.cnf 文件(不設置運行時值)

使用SET persist_ONLY語句,該語句需要system_VARIABLES_ADMIN和persist_RO_VARIABLES_ADMIN權限。SET PERSIST_ONLY既可用于動態(tài)系統(tǒng)變量,也可用于只讀系統(tǒng)變量,但對于不能使用SET PERSIST的持久只讀變量特別有用。

  • 持久化限制的系統(tǒng)變量

一些全局系統(tǒng)變量是持久受限的。要持久化這些變量,請使用SET persist_ONLY語句,該語句需要前面描述的權限。此外,必須使用加密連接連接到服務器,并提供具有由persist_only_admin_x509_Subject系統(tǒng)變量指定的Subject值的SSL證書。

例如:

SET PERSIST max_connections = 1000;

或者:

SET GLOBAL PERSIST max_connections = 1000;

要從mysqld-auto.cnf文件中刪除持久化的全局系統(tǒng)變量,請使用RESET PERSIST語句。這些特權適用于:

  • 對于動態(tài)系統(tǒng)變量,RESET PERSIST需要system_variables_ADMIN或SUPER權限。
  • 對于只讀系統(tǒng)變量,RESET PERSIST需要system_variables_ADMIN和PERSIST_RO_variables_ADMIN權限。
  • 對于持久受限變量,RESET persist不需要使用特定SSL證書加密連接到服務器。

例如:

RESET PERSIST max_connections;

如果全局系統(tǒng)變量對前面的特權要求有任何異常,則變量描述會指示這些異常。示例包括default_table_encryption和commandory_roles,它們需要額外的權限。這些附加權限適用于設置全局運行時值的操作,但不適用于保留該值的操作。

要設置會話系統(tǒng)變量運行時值,請使用set session語句。與設置全局運行時值相比,設置會話運行時值通常不需要特殊權限,任何用戶都可以進行設置以影響當前會話。對于某些系統(tǒng)變量,設置會話值可能會在當前會話之外產生影響,因此這是一項受限制的操作,只能由具有特殊權限的用戶執(zhí)行:

  • 從MySQL 8.0.14開始,所需的權限為SESSION_VARIABLES_ADMIN。

任何具有SYSTEM_VARIABLES_ADMIN或SUPER的用戶實際上隱含地具有SESSION_VARIABLES _ADMIN,并且無需明確授予SESSION_VARIABLES_AADMIN。

  • 在MySQL 8.0.14之前,所需的權限是SYSTEM_VARIABLES_ADMIN或SUPER。

如果會話系統(tǒng)變量受到限制,則變量描述會指示該限制。示例包括binlog_format和sql_log_bin。設置這些變量的會話值會影響當前會話的二進制日志記錄,但也可能對服務器復制和備份的完整性產生更廣泛的影響。

SESSION_VARIABLES_ADMIN使管理員能夠最大限度地減少先前可能已被授予SYSTEM_VARIABLES _ADMIN或SUPER的用戶的權限占用,以使他們能夠修改受限制的會話系統(tǒng)變量。假設管理員創(chuàng)建了以下角色以授予設置受限會話系統(tǒng)變量的能力:

CREATE ROLE set_session_sysvars;
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO set_session_sysvars;

任何被授予set_session_sysvars角色的用戶(以及該角色處于活動狀態(tài)的用戶)都可以設置受限制的會話系統(tǒng)變量。然而,該用戶也能夠設置全局系統(tǒng)變量,這可能是不希望的。

通過將角色修改為具有SESSION_VARIABLES_ADMIN而不是SYSTEM_VARIABLES _ADMIN,可以將角色權限減少為設置受限會話系統(tǒng)變量的能力,而不設置其他內容。要修改角色,請使用以下語句:

GRANT SESSION_VARIABLES_ADMIN ON *.* TO set_session_sysvars;
REVOKE SYSTEM_VARIABLES_ADMIN ON *.* FROM set_session_sysvars;

修改角色會立即生效:任何被授予set_session_sysvars角色的帳戶都不再具有SYSTEM_VARIABLES_ADMIN,并且在沒有明確授予該功能的情況下無法設置全局系統(tǒng)變量。類似的GRANT/REVOKE序列可以應用于直接授予SYSTEM_VARIABLES_ADMIN而不是通過角色授予的任何帳戶。

到此這篇關于MySQL 系統(tǒng)變量(查看,修改)的文章就介紹到這了,更多相關MySQL 系統(tǒng)變量 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

富源县| 海兴县| 广州市| 汝城县| 舞钢市| 遵义市| 黄骅市| 洛隆县| 广西| 德令哈市| 旬邑县| 孟津县| 曲周县| 柳河县| 肥乡县| 唐海县| 垫江县| 岱山县| 固阳县| 红河县| 玉龙| 琼结县| 康定县| 炎陵县| 冀州市| 郯城县| 安康市| 米脂县| 乌鲁木齐县| 康平县| 根河市| 昌黎县| 河北区| 历史| 赫章县| 阳山县| 阿克苏市| 洮南市| 湖州市| 贵港市| 长宁县|