我正在尝试将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问题。
答案 0 :(得分:0)
您是否希望将MySQL从Linux服务器迁移到Aurora,即用户复制而不是DMS。 DMS在数据加载期间不支持许多DDL。因此,在MySQL和Aurora之间创建一个复制。
Master - 您当前的MySQL。 奴隶 - 奥罗拉。
CREATE USER 'rep_user'@'%' IDENTIFIED BY 'rep_user';
GRANT REPLICATION slave ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'rep_user';
FLUSH PRIVILEGES;
mysqldump -u user -p dbname --master-data=2 > backup.sql
less backup.sql
这将为您提供binlog文件名及其位置。
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作为主人。
call mysql.rds_stop_replication;
CALL mysql.rds_reset_external_master;