我有一个Amazon EC2 Server实例,它与五个EBS卷相连


ebsvol1
ebsvol2
ebsvol3
ebsvol4
ebsvol5


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

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

最佳答案

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

this article at 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。有关详细信息,请参见the article here

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

关于mysql - MySQL-将数据库表分区到Amazon EC2实例中的不同EBS卷中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9668267/

10-09 02:59