gpt4 book ai didi

mysql - 如何在 AWS DMS 中为源数据库设置时区?

转载 作者:行者123 更新时间:2023-11-29 03:19:27 24 4
gpt4 key购买 nike

我正在尝试将 MySQL 数据库迁移到 Aurora,但无法设置时区。

根据documentation : "有效值是托管源 MySQL 数据库的操作系统的标准时区缩写。"

在我的 Linux (Ubuntu) 机器上执行 date 显示:Thu Dec 7 10:27:48 AEDT 2017

我已将源端点配置为使用:

额外连接属性:initstmt=SET time_zone=AEDT

这导致我的连接测试失败:

Error Details: [errType=ERROR_RESPONSE, status=1022502, errMessage=Cannot connect to ODBC provider ODBC general error., errDetails= RetCode: SQL_ERROR SqlState: HY000 NativeError: 1298 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown or incorrect time zone: 'AEDT' ODBC general error.]

我也尝试过 "Australia/Sydney"(与 RDS 参数组中的值相同)但出现相同的错误。

有什么想法吗?

我完全知道这应该是 UTC。不是我的选择 - 遗产。

更新:似乎 initstmt=SET time_zone="+11:00" 有效,但导致 this问题。

最佳答案

是否要将 MySQL 从 Linux 服务器迁移到 Aurora,用户复制而不是 DMS。 DMS 在数据加载期间不会支持很多 DDL。因此,在 MySQL 和 Aurora 之间创建一个复制。

Master - 你当前的 MySQL。奴隶 - 极光。

准备:

  • 两个实例都能够相互通信。
  • master 必须是 5.5 或更高版本。
  • binlog_format 到主 MySQL 上的 ROW。

为复制创建用户:

CREATE USER 'rep_user'@'%' IDENTIFIED BY 'rep_user';  
GRANT REPLICATION slave ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'rep_user';
FLUSH PRIVILEGES;

使用 Binlog 详细信息进行转储:

mysqldump -u user -p dbname --master-data=2 > backup.sql

less backup.sql这将为您提供二进制日志文件名及其位置。

恢复备份:

mysql -h auroraendpoint -u user -p dbname < backup.sql

启用复制:

CALL mysql.rds_set_external_master ('Master_RDS_EndPoint', 3306,    'Replication_user_name', 'Replication_User_password', 'BinLog_FileName', BingLog_Position, 0);

战略复制:

call mysql.rds_start_replication;

切换:

在维护窗口期间进行切换并使 Aurora 成为 master。

call mysql.rds_stop_replication;  
CALL mysql.rds_reset_external_master;

关于mysql - 如何在 AWS DMS 中为源数据库设置时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685335/

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