gpt4 book ai didi

mysql - 每次在 amazon RDS 上创建 mysql 连接时如何调用过程

转载 作者:行者123 更新时间:2023-11-29 02:52:29 25 4
gpt4 key购买 nike

我想为每个 session 更改 amazon RDS 的时区。RDS 时区默认为 UTC。我想将其更改为 Asia/Calcutta。

要更改特定 session 的时区,我已经定义了程序

DELIMITER |  
CREATE PROCEDURE mysql.store_time_zone ()
IF NOT (POSITION('rdsadmin@' IN CURRENT_USER()) = 1) THEN
SET SESSION time_zone = '+5:30';
END IF
|
DELIMITER ;

现在我不知道每次创建新连接/ session 时应该如何调用它。

我从给定的链接中获取了引用。我跑不动了

rds-modify-db-parameter-group PARAMGROUP --parameters "name=init_connect, value='CALL mysql.store_time_zone', method=immediate"

报错 ERROR 1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“rds-modify-db-parameter-group PARAMGROUP --parameters”name=init_connect, value='附近使用的正确语法

https://stackoverflow.com/a/15198369/3551179

提前致谢。

最佳答案

你走在正确的轨道上,但由于另一个答案中的措辞不明确,你误解了一步:

Connect to your instance, and run the following command

所以,您实际上是在这样做:

mysql> rds-modify-db-parameter-group ...

但是你应该这样做:

$ rds-modify-db-parameter-group ...

这不是MySQL语句,而是shell命令。 RDS 实例没有 shell 访问权限,因此您需要另一台机器来运行此命令。通常,这可能是一个 EC2 实例,所以我假设这就是其他经理的作者所说的“您的实例”的意思,但它可能是任何具有 RDS command line interface tools installed 的机器。 .

您也可以从 RDS Console 执行此操作.


另请注意,您还可以通过将 init_connect 设置为:

>
SET @@time_zone = '+5:30'

rdsadmin 用户应该不受 init_connect 的影响,因为它具有 SUPER 权限。

The content of init_connect is not executed for users that have the SUPER privilege. This is done so that an erroneous value for init_connect does not prevent all clients from connecting. For example, the value might contain a statement that has a syntax error, thus causing client connections to fail. Not executing init_connect for users that have the SUPER privilege enables them to open a connection and fix the init_connect value.

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_init_connect

如果你宁愿测试 rdsadmin 无论如何...

SET @@time_zone = CASE
WHEN CURRENT_USER() LIKE 'rdsadmin@%' THEN @@time_zone
ELSE '+5:30' END

将变量设置为相同的变量会使值保持不变。

注意 @@time_zoneSESSION time_zone 是等价的。

关于mysql - 每次在 amazon RDS 上创建 mysql 连接时如何调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com