如何使本地mysql设置与Amazon RDS匹配?

如何使本地mysql设置与Amazon RDS匹配?,mysql,amazon-web-services,amazon-rds,Mysql,Amazon Web Services,Amazon Rds,我有一个设置,使用本地mysql实例在本地开发,然后将代码推送到AWS,AWS使用RDS mysql实例 我希望使本地数据库与RDS设置尽可能匹配。我遇到了配置问题,在本地开发中没有出现明显的问题,但我在RDS上的测试失败了。例如,最近的一个问题是表的RDS默认字符集为latin1,而brew安装的mysql的默认设置为UTF-8 我可以在出现这些问题时解决它们,但进行批量设置,将本地MySQL配置为尽可能匹配RDS,这将非常有用 这是否可行?只需进入您在RDS中使用的参数组,并将所有这些设置复

我有一个设置,使用本地mysql实例在本地开发,然后将代码推送到AWS,AWS使用RDS mysql实例

我希望使本地数据库与RDS设置尽可能匹配。我遇到了配置问题,在本地开发中没有出现明显的问题,但我在RDS上的测试失败了。例如,最近的一个问题是表的RDS默认字符集为latin1,而brew安装的mysql的默认设置为UTF-8

我可以在出现这些问题时解决它们,但进行批量设置,将本地MySQL配置为尽可能匹配RDS,这将非常有用


这是否可行?

只需进入您在RDS中使用的参数组,并将所有这些设置复制到本地MySQL服务器。

下面是一个简短的powershell命令(基于建议的答案),用于检索指定参数组的所有非默认参数(替换为“default.MySQL-57”)使用您正在使用的特定参数组名称):

可用于检索您的RDS配置。我用来把它拉下来的命令如下。用RDS参数组名称替换
您的\u参数\u组\u名称
,并且
--source
可以是
系统
用户
引擎默认值
(或者删除
--source
参数,它将检索所有参数)。下面的命令也使用


谢谢你,马克!我想知道如何下载参数组。我可以做
aws rds descripe db parameters--db parameter group name
,但它只提供模式,而不提供值…有什么理由不能在web控制台中查看并复制值吗?嗨,马克,我可以在web UI中查看,但我想将其完整配置转换为我可以在本地使用的my.cnf。我还想让这成为一个可重复的过程。通过从web UI手动复制和粘贴值并不真正成立。它不仅返回“schema”,如果为给定属性设置了值,则将具有“ParameterValue”属性。默认情况下有很多值为空或“unset”,在这种情况下,它们只是使用MySQL默认值。我很想看看它是怎么工作的!
Get-RDSDBParameter -DBParameterGroupName default.mysql5.7 | 
  select ParameterName, ParameterValue |
  where {$_.ParameterValue -ne $null}
aws rds describe-db-parameters --db-parameter-group-name YOUR_PARAMETER_GROUP_NAME --source system | jq -r '.Parameters[] | (.ParameterName + "=" + .ParameterValue)'