gpt4 book ai didi

mysql - Amazon EC2,mysql 中止启动,因为 InnoDB : mmap (x bytes) failed; errno 12

转载 作者:IT老高 更新时间:2023-10-28 12:51:38 28 4
gpt4 key购买 nike

我有一个基于 EC2 的 微型 实例服务器 this

mysql 服务器经常出现故障,第三次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

真正的失败了;错误号 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

最佳答案

当我尝试在没有 RDS 的微型实例上运行 wordpress 时遇到了同样的问题。

添加交换页面为我解决了这个问题。

您可以按照以下步骤设置交换空间。

如果还是不行,请考虑使用 RDS 服务。

================================================

我复制了博客的内容以作记录。归功于博客作者 pmoubed :

Amazon EC2 微实例交换空间 - Linux

我有一个 Amazon EC2 Linux Micro 实例。由于 Micro 实例只有 613MB 的内存,MySQL 时不时地崩溃。在对 MySQL、Micro Instance 和 Memory Managment 进行了长时间搜索后,我发现 Micro 实例没有默认的 SWAP 空间。所以如果你想避免崩溃,你可能需要为你的微实例设置一个交换空间。实际上,在性能方面启用交换会更好。

以下步骤展示了如何为您的 Micro 实例创建交换空间。我假设您有 AWS 账户,并且正在运行 Micro 实例。

  1. 运行dd if=/dev/zero of=/swapfile bs=1M count=1024
  2. 运行mkswap/swapfile
  3. 运行 swapon/swapfile
  4. /etc/fstab
  5. 中加入这一行 /swapfile swap swap defaults 0 0

如果您想在每次重启后自动启用交换文件,则需要第 4 步。

一些与 SWAP 空间相关的有用命令:

$ swapon -s   
$ free -k

$ swapoff -a
$ swapon -a

引用资料:

  1. http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/
  2. http://cloudstory.in/2012/02/getting-the-best-out-of-amazon-ec2-micro-instances/
  3. http://cloudstory.in/2012/02/adding-swap-space-to-amazon-ec2-linux-micro-instance-to-increase-the-performance/
  4. http://aws.amazon.com/ec2/instance-types/

关于mysql - Amazon EC2,mysql 中止启动,因为 InnoDB : mmap (x bytes) failed; errno 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com