mysql - AWS CentOS 6.5 实例 + AWS EBS 卷用于 Web 托管文件和数据库?

标签 mysql amazon-web-services amazon-ec2 centos mount

我有一个运行 CentOS 6.5 的 AWS 实例。它已针对网络托管 (LAMP) 进行了更新、保护和设置。我将 EBS 卷附加到实例并将其安装在 /data 下.

两个问题:

  1. 如何让 MySQL 使用 /data目录作为其数据库存储位置? (我不想从 /data 目录运行程序,只需将 .sql 文件放在那里即可。

  2. 我如何对我的网站执行同样的操作?我计划运行一个 WordPress 网站,其当前位置位于 /var/www/html目录。我想将其更改为 /data/site .

我想将网站文件和数据库保留在单独的卷上:/data 。如果我的实例损坏或无法访问,我可以将 EBS 卷附加到新实例。

我已经阅读了数十篇关于如何将 MySQL 移动到不同目录的教程和文章,但没有任何效果。之后 MySQL 拒绝启动。我可以按原样安装 MySQL,但让它在不同的目录(例如 /data)上读/写数据库吗?这是一个已安装的 EBS 卷,还是 Linux 根本不可能实现?

以下是我一直在关注/测试的一些教程和文章:

aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1

spruce.it/noise/setting-up-a-proper-lamp-stack-on-aws-ec2-ebs/

编辑: 这就是我正在做的事情。

  1. 使用此 ami 创建一个新实例:https://aws.amazon.com/marketplace/pp/B00IOYDTV6?ref=cns_srchrow

  2. 实例启动后,我使用以下命令运行更新:sudo yum update -y

  3. 更新后,我使用以下说明将其设置为 LAMP Web 服务器:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html 除了上述步骤之外,我还允许内置防火墙上的端口 80 tcp 连接。我运行这些命令:sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPTsudo service iptables save 完成此操作后,我会在 http://IP-ADDRESS 测试我的网站。 (这显示了 Apache 测试页面)

  4. 安装 LAMP 后,我通过运行以下命令来安装 MySQL 服务器:yum install mysql-server 安装完成后,我将继续执行上一个 Amazon 文档中的“保护 MySQL 服务器”说明。

  5. 接下来,我使用这两个教程安装 PHPMyAdmin:http://tecadmin.net/installing-apache-mysql-php-on-centos-redhat/#http://tecadmin.net/how-to-install-phpmyadmin-on-centos-using-yum/

  6. 此时,我已经拥有一个功能齐全的 Web 服务器。现在,我想使用AWS EBS卷来存储所有数据库和网站文件。首先,我附加新创建的 AWS EBS 卷。我使用本教程来执行此操作:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

这就是问题开始的地方。 使用本教程中的信息:aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1 。它说失败。

最佳答案

因此,您可以做的一件事是避免复制所有目录。您需要确保所有权限均已正确设置才能正常工作:

  • mysql 数据目录:

    mv /var/lib/mysql /var/lib/mysql.orig
    mkdir -p /<your-new-ebs-mountpoint>/var/lib/mysql
    chown mysql.mysql /<your-new-ebs-mountpoint>/var/lib/mysql
    chmod 700 /<your-new-ebs-mountpoint>/var/lib/mysql
    
  • 等配置:

    mkdir -p /<your-new-ebs-mountpoint>/etc
    cp /etc/my.cnf /<your-new-ebs-mountpoint>/etc/my.cnf
    mv /etc/my.cnf /etc/my.cnf.orig
    ln -s /<your-new-ebs-mountpoint>/etc/my.cnf /etc/my.cnf
    
  • 日志:

    mkdir -p /<your-new-ebs-mountpoint>/var/log
    mv /var/log/mysqld.log /var/log/mysqld.log.orig
    touch /<your-new-ebs-mountpoint>/var/log/mysqld.log
    chown mysql.mysql /<your-new-ebs-mountpoint>/var/log/mysqld.log
    chmod 640 /<your-new-ebs-mountpoint>/var/log/mysqld.log
    ln -s /<your-new-ebs-mountpoint>/var/log/mysqld.log /var/log/mysqld.log
    

关于mysql - AWS CentOS 6.5 实例 + AWS EBS 卷用于 Web 托管文件和数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23296453/

相关文章:

amazon-web-services - NGINX Ingress 因下载大文件而超时

ruby-on-rails - Capistrano bundler :install fails

MySQL 复制 - Percona 工具包表同步 - 外键约束失败

php - 类 stdClass 的对象无法转换为 int Laravel 5.6

php - 未找到列 : 1054 Unknown column - Laravel 5. 1 加入

amazon-web-services - 从云外部访问 EC2 实例上的 ElasticSearch

amazon-web-services - 微服务和云资源限制

php - 目录中记录的文件名与数据库不同

MySQL RDS 数据库连接

amazon-web-services - 结构化查询中的短语和术语有什么区别?