Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否根据不同的用户帐户更新MySQL全局变量?_Mysql_Database_Database Administration - Fatal编程技术网

是否根据不同的用户帐户更新MySQL全局变量?

是否根据不同的用户帐户更新MySQL全局变量?,mysql,database,database-administration,Mysql,Database,Database Administration,如何为不同的用户帐户更改MySQL会话全局变量(即SQL\u模式、最大允许\u数据包等)。我有两个用户sam@localhost及joe@localhost我需要为两个用户设置不同的MySQL会话变量值,或者需要在用户登录时更新变量值。这是可能的吗。任何GLOBAL选项一次只能有一个值。如果两个用户同时登录怎么办 见: 要在运行时更改SQL模式,请使用set语句设置全局或会话SQL_模式系统变量: SET GLOBAL sql_mode = 'modes'; SET SESSION sql_m

如何为不同的用户帐户更改MySQL会话全局变量(即SQL\u模式、最大允许\u数据包等)。我有两个用户sam@localhost及joe@localhost我需要为两个用户设置不同的MySQL会话变量值,或者需要在用户登录时更新变量值。这是可能的吗。任何
GLOBAL
选项一次只能有一个值。如果两个用户同时登录怎么办

见:

要在运行时更改SQL模式,请使用set语句设置全局或会话SQL_模式系统变量:

SET GLOBAL sql_mode = 'modes'; 
SET SESSION sql_mode = 'modes'; 
背景
GLOBAL
变量需要
SUPER
权限并影响 从那时起连接的所有客户端的操作。设定
会话
变量仅影响当前客户端。每个客户都可以 随时更改其会话
sql\u模式

无法更改每个会话的
max\u allowed\u packet
的服务器端值。每个会话都从全局值继承。由于MySQL 5.1.31,会话值是只读的。看

因此,您应该将
max_allowed_packet
的服务器端值设置为任何用户所需的更大值

您可以为max_allowed_数据包设置客户端的值,因为有效限制是服务器端值和客户端值中的较小值

说:

当您通过更改max_allowed_packet变量的值来更改消息缓冲区大小时,如果您的客户端程序允许,您还应该在客户端更改缓冲区大小。客户端库内置的默认最大允许数据包值为1GB,但个别客户端程序可能会覆盖该值。例如,mysql和mysqldump的默认值分别为16MB和24MB。它们还允许您通过在命令行或选项文件中设置max_allowed_packet来更改客户端值


你不能说你的应用程序使用的是什么客户端语言。根据语言和连接器的不同,可能无法将max_allowed_数据包指定为客户端选项。

您无法更改每个用户的
全局值。任何
GLOBAL
选项一次只能有一个值。如果两个用户同时登录怎么办

见:

要在运行时更改SQL模式,请使用set语句设置全局或会话SQL_模式系统变量:

SET GLOBAL sql_mode = 'modes'; 
SET SESSION sql_mode = 'modes'; 
背景
GLOBAL
变量需要
SUPER
权限并影响 从那时起连接的所有客户端的操作。设定
会话
变量仅影响当前客户端。每个客户都可以 随时更改其会话
sql\u模式

无法更改每个会话的
max\u allowed\u packet
的服务器端值。每个会话都从全局值继承。由于MySQL 5.1.31,会话值是只读的。看

因此,您应该将
max_allowed_packet
的服务器端值设置为任何用户所需的更大值

您可以为max_allowed_数据包设置客户端的值,因为有效限制是服务器端值和客户端值中的较小值

说:

当您通过更改max_allowed_packet变量的值来更改消息缓冲区大小时,如果您的客户端程序允许,您还应该在客户端更改缓冲区大小。客户端库内置的默认最大允许数据包值为1GB,但个别客户端程序可能会覆盖该值。例如,mysql和mysqldump的默认值分别为16MB和24MB。它们还允许您通过在命令行或选项文件中设置max_allowed_packet来更改客户端值


你不能说你的应用程序使用的是什么客户端语言。根据语言和连接器的不同,可能无法将max_allowed_数据包指定为客户端选项。

请参阅此线程了解
SQL_模式
:我不确定您是否可以更改每个用户的
max_allowed_数据包
,因为这是服务器范围的设置。(客户端上有一个命令行,但我认为它的行为与服务器设置不同)查看
SQL\u模式
的此线程:我不确定您是否可以更改每个用户的
max\u allowed\u packet
,因为它是服务器范围的设置。(客户机上有一个命令行,但我认为它的行为与服务器设置不同)我还需要知道的是,用户登录后是否有自动调用过程或sql的方法。一旦用户登录,我可以在过程中设置会话变量(即设置会话sql_mode='modes';),它将自动设置。我还需要知道的是,是否有任何方法可以在用户登录后自动调用过程或sql。一旦用户登录,我可以在过程中设置会话变量(即设置会话sql_mode='modes';),它将自动设置。