0

我有一个 Amazon EC2 服务器实例,它附加了五个 EBS 卷,比如说

  1. ebsvol1
  2. ebsvol2
  3. ebsvol3
  4. ebsvol4
  5. ebsvol5

在配置此服务器时,我需要安装 MySQL 服务器并需要设置我的数据库。在这里,我需要将几个表挂载到一个 EBS 卷(比如 ebsvol1)和其他表到另一个卷(比如 ebsvol2)。

我是这个亚马逊环境的初学者。请指导我如何进行。

4

1 回答 1

4

此答案适用于基于 LINUX 的实例。

从Amazon上的这篇文章开始,它解释了如何设置 MySQL 以在 EBS 卷上运行。这不是绝对必要的 - 以下步骤应该适用于标准 MySQL 安装。

您将需要为每个 EBS 卷/表组创建一个新架构。我不相信您可以将表保存在一个模式中,而是将它们分布在多个 EBS 卷上。每个空模式由/var/lib/mysql/中的一个文件夹表示,其中包含一个名为db.opt的文件。

要将架构移动到它自己的 EBS 卷需要以下步骤(使用架构my_schema):

  • 如果尚未安装,则安装 EBS 卷(假设安装为/ebsvol1);确保卷在/etc/fstab中列出,以便在重新启动时自动挂载

  • 更改已安装文件夹的权限以匹配当前架构文件夹

   chmod 700 /ebsvol1
   chown mysql /ebsvol1
   chgrp mysql /ebsvol1
  • db.opt文件从架构文件夹复制到新卷(如果您已经在架构下创建了表,也需要复制这些表)
   cp /var/lib/mysql/my_schema/db.opt /ebsvol1/
   chmod 660 /ebsvol1/db.opt
   chown mysql /ebsvol1/db.opt
   chgrp mysql /ebsvol1/db.opt
  • 用指向 EBS 卷的符号链接替换原始架构文件夹
   cd /var/lib/mysql
   rm -fr my_schema
   ln -s /ebsvol1 my_schema

如果您的操作系统使用 AppArmor,您可能需要在 MySQL 允许写入的文件夹列表中包含 /ebsvol1。有关详细信息,请参阅此处的文章

现在,在my_schema下创建的任何表都将存储在 /ebsvol1 上。

于 2012-05-24T16:25:19.137 回答