我已经下载了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文件的mysqld_safe mysqld /usr/local/mysql/data/irpowerweb.pid已结束
错误日志的内容是:
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
我只是希望以w / e方式运行mysql。我尝试使用yum install mysql-server
安装软件包,下载rpm软件包并且无法启动它。我选择了简单的tar包并开始关注上面的链接,但后来我再次没有启动它
由于错误状态为Cannot allocate memory for the buffer pool
,我尝试将内存减少到64米(默认为128米)并且无法正常工作。
我是一个新手,我做了很多搜索,并没有弄清楚如何解决这个问题。
P.S。如果它有帮助,我使用ssh连接到内存不足的服务器(512MB内存没有交换),我认为这是一个红帽Linux。
答案 0 :(得分:1)
您最重要的错误是:
无法为缓冲池分配内存
你必须在my.cnf
中降低它。
当您运行free
时,mysqld_safe
已经完成清理,因此您必须通过另一个终端监控内存。但是默认my.cnf
会耗尽你的可用内存是很正常的。这是Debian没有附带默认my.cnf配置的原因之一。
<强>更新强>: 为了以防万一,请确保:
ulimit -s
确保您的堆叠尺寸足够大(您可以增加它:ulimit -s <new_size>
甚至ulimit -s unlimited
)答案 1 :(得分:1)
尝试添加:
[mysqld]
...
skip-bdb
skip-innodb
这将阻止Berkeley DB和InnoDB的启动。
答案 2 :(得分:1)
我找到了答案here。使用以下my.cnf并且它有效:
[mysqld]
innodb=OFF
ignore-builtin-innodb
skip-innodb
default-storage-engine=myisam
default-tmp-storage-engine=myisam