是否根据不同的用户帐户更新MySQL全局变量?
如何为不同的用户帐户更改MySQL会话全局变量(即SQL\u模式、最大允许\u数据包等)。我有两个用户sam@localhost及joe@localhost我需要为两个用户设置不同的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
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';),它将自动设置。