AWS上的Socialengine 4.8.6(EC2、RDS(MYSQL/INNODB)、S3和CLOUDFRONT)-启动时出现白屏/INNODB可能出现问题

AWS上的Socialengine 4.8.6(EC2、RDS(MYSQL/INNODB)、S3和CLOUDFRONT)-启动时出现白屏/INNODB可能出现问题,mysql,amazon-web-services,innodb,amazon-rds,socialengine,Mysql,Amazon Web Services,Innodb,Amazon Rds,Socialengine,Socialengine 4.8.6-启动时显示“白色屏幕”,通过浏览器只能访问sesystem.com/phpmyadmin和sesystem.com/install 问题已开始: 我需要一个带有生产数据副本的新数据库来测试新的升级(Socialengine 4.8.9)。我使用PHPMYADMIN将生产数据库(PROD)复制到一个新的开发数据库(COPYOFPROD),两个数据库都驻留在AWS RDS上,实例和用户/密码相同,都通过INNODB连接 将我的系统上的social/applica

Socialengine 4.8.6-启动时显示“白色屏幕”,通过浏览器只能访问sesystem.com/phpmyadmin和sesystem.com/install

问题已开始: 我需要一个带有生产数据副本的新数据库来测试新的升级(Socialengine 4.8.9)。我使用PHPMYADMIN将生产数据库(PROD)复制到一个新的开发数据库(COPYOFPROD),两个数据库都驻留在AWS RDS上,实例和用户/密码相同,都通过INNODB连接

将我的系统上的social/application/settings/database.php从PROD更改为copyofpod,以测试数据库是否正确(是的,对于生产系统来说不是很聪明!)。尝试使用新数据库通过浏览器访问系统时出现白色屏幕

将/application/settings/database.php上的单个配置更改恢复为原始设置。白色屏幕仍然存在,查看Socialengine错误日志,它报告不再识别PROD数据库。Socialengine安装目录中没有其他文件已更改

地位: 可以访问phpmyadmin上的RDS数据库 访问socialengine,www.sesystem.com/install,然后选择“要求和冗余检查”。系统报告如下:

MySQL‘OK’

MySQL 4.1'无法检查。未提供数据库适配器。'

MySQL InnoDB存储引擎“无法检查”。未提供数据库适配器。'

因此,我总结说,我的操作导致INNODB服务崩溃。我知道该服务是敏感的,如果您更改配置条目,它将崩溃

我读到INNODB日志文件需要在恢复服务之前删除,我尝试了删除ib_日志文件并重新启动mysql的过程。 结果:mysql启动[ok],ib_日志文件被重新创建,但是当我尝试Socialengine时,它仍然有一个“白色屏幕”,并且仍然报告“没有数据库适配器”

我的问题是:

1) 如何检查INNODB服务是否在AWS EC2/RDSMYSQL上正确运行?注意:我使用的终端来自OSX机器,通过标准的ECU和pemkey组合连接到EC2

2) 我如何在AWS RDS上访问mysqlmonitor,并有相应的权限问题,以检查INNODB状态。当前系统报告-尝试显示状态命令时需要“进程”权限

3) 在Socialengine中,哪些是最好的日志,以了解为什么会出现白屏,以及是否有任何提示-因为我只是假设这是INNODB的问题,但我需要确认一下

我是个新手,所以不知道下一步该怎么做


非常感谢

您的问题似乎来自于在database.php设置文件中过度编写的事实。查看
database.sample.php
,了解所有必需的设置键,以下为参考:

defined('_ENGINE') or die('Access Denied'); return array(
  'adapter' => 'mysqli',
  'params' => array(
    'host' => "rds connection string",
    'username' => "rds user",
    'password' => "rds password",
    'dbname'   => "se database",
    'charset'  => 'UTF-8',
    'adapterNamespace' => 'Zend_Db_Adapter',
  ),
  'isDefaultTableAdapter' => true,
  'tablePrefix' => "engine4_",
  'tableAdapterClass' => "Engine_Db_Table",
);
今后,我强烈建议使用AWS/RDS内置的“快照”功能

升级测试步骤
  • 拍摄RDS快照
  • 拍摄EC2实例快照(保持实例运行)
  • 从快照启动新的RDS实例
  • 从快照启动新的EC2实例
  • 更改新实例上的数据库(验证其工作)
  • 应用更新
  • 验证其工作情况,确保一切正常

    现在要升级live安装(假设您使用s3存储):
  • 拍摄升级前的RDS快照

  • 请记住,在新升级的SE实例上,所有设置都应与旧系统匹配
  • 将数据库凭据切换到live db
  • 重新运行数据库升级脚本
  • 切换ELB或弹性IP,或者以任何方式处理到新实例的流量

  • 是的,这是问题的100%解决方案,非常感谢。我在database.php中对数据库实例名称使用的一些引号是不正确的。我在屏幕前坐了14个小时,最后才弄明白。在将我的产品拷贝加载到我的开发系统后,我升级到4.8.9并进行了测试。终于在大约6个小时前将其投入生产,一切都很顺利。社交引擎做得不错,升级非常顺利。用户在我的socialengine网站上发布了嵌入youtube视频的帖子——显然,在升级之前他们错过了很多这一功能——网站流量仅在几个小时内就增加了两倍。