我在EC2上有一个基于此的微实例服务器
mysql服务器经常出现故障,这已经是第三次了。日志只显示
120423 09:13:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
120423 09:14:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120423 9:14:27 [Note] Plugin 'FEDERATED' is disabled.
120423 9:14:27 InnoDB: The InnoDB memory heap is disabled
120423 9:14:27 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120423 9:14:27 InnoDB: Compressed tables use zlib 1.2.3
120423 9:14:27 InnoDB: Using Linux native AIO
120423 9:14:27 InnoDB: Initializing buffer pool, size = 512.0M
InnoDB: mmap(549453824 bytes) failed; errno 12
120423 9:14:27 InnoDB: Completed initialization of buffer pool
120423 9:14:27 InnoDB: Fatal error: cannot allocate memory for the buffer pool
120423 9:14:27 [ERROR] Plugin 'InnoDB' init function returned error.
120423 9:14:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120423 9:14:27 [ERROR] Unknown/unsupported storage engine: InnoDB
120423 9:14:27 [ERROR] Aborting
什么是真正的<代码>失败;errno 12?我怎样才能给更多的空间/内存或任何需要的东西来解决这个问题。
我每次都通过重启整个系统,删除所有日志,重启mysql服务器来解决这个问题。但是我知道我的配置有问题。
我的my.cnf如下:
[mysqld]
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# max_allowed_packet=500M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_buffer_pool_size = 512M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
看起来你在帖子中展示的my.cfg文件中为innodb_buffer_pool_size请求了128M的内存,但是MySQL认为你请求的是512M的内存:
初始化缓冲池,size=512.0M
几行之后,错误消息告诉您MySQL将不会启动,因为它无法为InnoDB缓冲池保留足够的(512M)内存:
致命错误:无法为缓冲池分配内存
这就引出了三个问题:
你可以回答1。
至于2.,有几个不同的地方 MySQL选项文件可以找到。随后找到的文件将覆盖以前找到的文件中指定的选项。看
http://dev.mysql.com/doc/refman/5.5/en/option-files.html
问题3。可能是由于启动后的某个时候发生的内存溢出情况。如果是这种情况,您应该在日志中看到进一步的指示。
最后,但有些不相关,您是否在使用 EBS 支持的实例?通常强烈建议用于数据库服务器(实际上,除非特殊情况,否则适用于任何实例)。有关此内容的更多信息,请参阅
https://stackoverflow.com/a/3630707/141172
我在Amazon EC2微实例上也遇到了这个问题。我试图通过将以下内容添加到/etc/my.cnf
来减少inno_db的内存使用量。
innodb_buffer_pool_size = 64M
这不起作用,我试着把它降到16M,但它仍然不起作用。然后我意识到该实例的可用内存基本上为零。所以我尝试重新启动阿帕奇
sudo system httpd restart sudo system mysqld restart
一切都很好。也许另一个解决方案是配置apache不要以某种方式消耗这么多内存。
当我尝试在没有RDS的情况下在我的微实例上运行wordpress时,我遇到了同样的问题。
添加交换页面为我解决了问题。
您可以按照以下步骤设置交换空间。
如果还是不行,考虑用RDS服务。
===============================================
我复制了博客的内容以供记录。归功于博客作者pMoubed:
Amazon EC2微实例交换空间-Linux
我有一个Amazon EC2LinuxMicro实例。由于Micro实例只有613MB的内存,MySQL时不时会崩溃。在对MySQL、Micro Instance和内存管理进行了长时间的搜索后,我发现Micro实例没有默认的SWAP空间。所以如果你想避免崩溃,你可能需要为你的微实例设置一个交换空间。实际上,从性能角度来看,启用交换更好。
以下步骤显示了如何为微型实例创建交换空间。我假设您有一个正在运行微型实例的 AWS 账户。
dd if=/dev/零=/swapfile bs=1M计数=1024
mkwap /swapfile
swapon /swapfile
/swapfile交换交换默认值0
添加到/etc/fstab
如果要在每次重新启动后自动启用交换文件,则需要执行步骤 4。
一些与SWAP空间相关的有用命令:
$ swapon -s
$ free -k
$ swapoff -a
$ swapon -a
引用:
问题内容: 我已根据此处的内容在EC2上设置了 微型 实例服务器 mysql服务器频繁失败,并且第三次mysql服务器不见了。日志仅显示 到底是什么?以及如何给我更多的空间/内存或进行修复所需的一切。 我每次通过重新启动整个系统并删除所有日志并重新启动mysql服务器来解决此问题。但是我知道我的配置有问题。 我的“ my.cnf”也如下所示: 问题答案: 当我尝试在没有RDS的微型实例上运行wor
错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t
我正在使用NetBeans 8.0.2(也在最新的夜间版本中尝试过),并试图在端口8084上启动TomEE Plume服务器(也在不同的端口上尝试过)。服务器启动和工作正常,但NetBeans认为它没有启动,在大约2分钟的等待(“等待Tomcat”)后,抛出一个错误窗口“Tomcat失败启动”或类似的东西。 有些问题与我的问题相似,不同的是我完全没有错误,只有“Tomcat失败启动”窗口,所以我甚
问题内容: 我的媒体录制出现问题。我正在尝试使用前置摄像头进行记录。这给我一个错误(但预览正常)。每当我使用后置摄像头时,一切正常,我觉得这很奇怪。可能是什么问题,可能是解决方案?我的代码和错误如下所示。 编辑。使用VGA前置摄像头录制似乎不起作用。这怎么可能?虽然可以使用HTC camera应用程序进行录制。 预先感谢您。 行添加到清单: 错误日志: 问题答案: 找到了解决方案。由于我使用的是前
我能成功地建立docker映像 下面是我的docker-compose 现在我做到了 当服务停止时,它给出了以下错误
问题内容: 我有以下失败部分: 我想在错误消息的正文中包含构建失败的原因。 我怎样才能做到这一点? 如果没有,是否可以将构建日志文件附加到电子邮件? 问题答案: 我不知道一种凭空自动获取故障原因的方法。 但是,您可以在每个阶段中使用“ post {failure {”块来至少捕获其失败的阶段到环境变量中(例如env.FAILURE_REASON),并在最终(全局范围)通知块中访问该env var