【发布时间】:2014-03-09 13:19:29
【问题描述】:
我已经下载了 mysql 二进制文件,我正在尝试按照说明here 进行安装。当我尝试运行bin/mysqld_safe --user=mysql & 命令时,我得到以下输出:
40211 19:04:56 mysqld_safe 记录到“/usr/local/mysql/data/irpowerweb.err”。
140211 19:04:56 mysqld_safe 使用来自 /usr/local/mysql/data 的数据库启动 mysqld 守护进程
140211 19:04:57 pid 文件 /usr/local/mysql/data/irpowerweb.pid 中的 mysqld_safe mysqld 结束
错误日志的内容是:
140211 19:07:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
2014-02-11 19:07:02 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-02-11 19:07:02 19511 [Note] Plugin 'FEDERATED' is disabled.
2014-02-11 19:07:02 19511 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2014-02-11 19:07:02 19511 [Note] InnoDB: The InnoDB memory heap is disabled
2014-02-11 19:07:02 19511 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation
2014-02-11 19:07:02 19511 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-02-11 19:07:02 19511 [Note] InnoDB: Using Linux native AIO
2014-02-11 19:07:02 19511 [Note] InnoDB: Not using CPU crc32 instructions
2014-02-11 19:07:02 19511 [Note] InnoDB: Initializing buffer pool, size = 64.0M
InnoDB: mmap(68370432 bytes) failed; errno 12
2014-02-11 19:07:02 19511 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2014-02-11 19:07:02 19511 [ERROR] Plugin 'InnoDB' init function returned error.
2014-02-11 19:07:02 19511 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-02-11 19:07:02 19511 [ERROR] Unknown/unsupported storage engine: InnoDB
2014-02-11 19:07:02 19511 [ERROR] Aborting
2014-02-11 19:07:02 19511 [Note] Binlog end
...
Shutting down stuff
...
2014-02-11 19:07:02 19511 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
140211 19:07:02 mysqld_safe mysqld from pid file /usr/local/mysql/data/irpowerweb.pid ended
这里是my.cnf:
[mysqld]
innodb_buffer_pool_size = 64M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
我只想让 mysql 以 w/e 方式运行。我尝试使用yum install mysql-server 安装软件包,下载 rpm 软件包但未能启动。我选择了简单的 tar 包并开始按照上面的链接进行操作,但是我又一次未能启动它。
由于错误状态为Cannot allocate memory for the buffer pool,我尝试将内存减少到64m(默认为128m),但没有成功。
我是这方面的新手,我已经做了很多搜索,还没有弄清楚如何解决这个问题。
附:如果有帮助,我正在使用 ssh 连接到内存不足的服务器(512MB 内存,没有交换),我认为这是一个红帽 Linux。
【问题讨论】:
-
您可以发布您的
my.cnf文件吗? -
系统有512MB内存,使用
free命令我可以看到大部分都可用(大约450MB),所以我觉得我有足够的空间启动mysql。 -
禁用所有不需要的引擎,并配置 mysqld 以使用尽可能少的内存。谷歌搜索
low memory mysql有很多关于如何做到这一点的教程 -
您最严重的错误是
Cannot allocate memory for the buffer pool尝试在my.cnf中降低它。另外,您使用的是什么发行版? -
@Oerd 我确实尝试将其从 128 降低到 64,但仍然不起作用。这是一顶红帽子,我认为它是 CentOS。
标签: mysql linux low-memory