带有 AWS Opsworks Mysql 层的 Mysql 5.6?

Posted

技术标签:

【中文标题】带有 AWS Opsworks Mysql 层的 Mysql 5.6?【英文标题】:Mysql 5.6 with AWS Opsworks Mysql Layer? 【发布时间】:2015-02-07 19:21:09 【问题描述】:

我正在寻找可能知道如何在 Opsworks mysql 层上覆盖默认安装的 MySql 5.5 的人。

我已经尝试启用 ius repo,然后使用自定义配方来安装 mysql56u-server、mysql56u-common 软件包,但是由于 mysql 在安装过程中较早安装,到目前为止所有尝试都失败了。

我还没有找到为 mysql55 选择包的实际配方。

有人对此有任何见解吗?

非常感谢任何帮助!

【问题讨论】:

我发现了这一点,只需使用自定义食谱 mysql::server 配方覆盖默认的 mysql 食谱,将其修改为使用 ius repos,根据 ius repo 更新包名称并且它可以工作! 【参考方案1】:

查看mysql Cookbook provided by AWS,安装客户端的配方(recipes/client_install.rb)包括以下内容:

case node[:platform]
  when "redhat", "centos", "fedora", "amazon"
    package mysql_name
  else "ubuntu"
    package "mysql-client"
end

mysql_name 变量在配方的前面设置:

mysql_name = node[:mysql][:name] || "mysql"

查看属性文件(attributes/server.rb),默认值是根据Host的OS设置的:

if rhel7?
  default[:mysql][:name] = "mysql55-mysql"
else
  default[:mysql][:name] = "mysql"
end

您可以根据需要覆盖名称值:

default[:mysql][:name] = "mysql56u"

这可以通过在您的自定义食谱中配置您自己的customize attributes file 来实现,或者只是在您的堆栈设置中使用以下自定义 JSON:


  "mysql": 
    "name": "mysql56u"
  

【讨论】:

以上是关于带有 AWS Opsworks Mysql 层的 Mysql 5.6?的主要内容,如果未能解决你的问题,请参考以下文章

AWS OpsWorks:如何设置每层的默认 EBS 卷大小?

AWS OpsWorks 基于负载的实例(如 EC2 自动扩展)

AWS Opsworks 中的 Chef 环境

AWS Opsworks:通过 https 进行负载平衡

在 aws opsworks 上升级 node.js

在 AWS opsworks 部署应用程序。为啥随机部署失败?