我有一个 Amazon EC2 服务器实例,它附加了五个 EBS 卷,比如说
- ebsvol1
- ebsvol2
- ebsvol3
- ebsvol4
- ebsvol5
在配置此服务器时,我需要安装 MySQL 服务器并需要设置我的数据库。在这里,我需要将几个表挂载到一个 EBS 卷(比如 ebsvol1)和其他表到另一个卷(比如 ebsvol2)。
我是这个亚马逊环境的初学者。请指导我如何进行。
我有一个 Amazon EC2 服务器实例,它附加了五个 EBS 卷,比如说
在配置此服务器时,我需要安装 MySQL 服务器并需要设置我的数据库。在这里,我需要将几个表挂载到一个 EBS 卷(比如 ebsvol1)和其他表到另一个卷(比如 ebsvol2)。
我是这个亚马逊环境的初学者。请指导我如何进行。
此答案适用于基于 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
cp /var/lib/mysql/my_schema/db.opt /ebsvol1/ chmod 660 /ebsvol1/db.opt chown mysql /ebsvol1/db.opt chgrp mysql /ebsvol1/db.opt
cd /var/lib/mysql rm -fr my_schema ln -s /ebsvol1 my_schema
如果您的操作系统使用 AppArmor,您可能需要在 MySQL 允许写入的文件夹列表中包含 /ebsvol1。有关详细信息,请参阅此处的文章。
现在,在my_schema下创建的任何表都将存储在 /ebsvol1 上。