我有一个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/