这是我尝试启动 mysql 服务器时收到的错误:
# mysqld start
130105 8:51:28 [Note] Plugin 'FEDERATED' is disabled.
130105 8:51:28 InnoDB: The InnoDB memory heap is disabled
130105 8:51:28 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130105 8:51:28 InnoDB: Compressed tables use zlib 1.2.3.4
130105 8:51:28 InnoDB: Using Linux native AIO
130105 8:51:28 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
130105 8:51:28 InnoDB: Completed initialization of buffer pool
130105 8:51:28 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130105 8:51:28 [ERROR] Plugin 'InnoDB' init function returned error.
130105 8:51:28 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
mysqld: Too many arguments (first extra is 'start').
Use --verbose --help to get a list of available options
130105 8:51:28 [ERROR] Aborting
130105 8:51:28 [Note] mysqld: Shutdown complete
#
在我运行 mysql_upgrade (Debian Squeeze) 后,这种情况开始发生。当我尝试初始化 mysql 时,下一部分也会发生:
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
有人能解释一下这一点吗?以及我如何才能正常启动 mysqld 并重新运行我的网站?
答案1
InnoDB 无法为内存池分配足够的内存。如果 innodb_buffer_pool_size 的设置不够高,请检查配置。
答案2
没关系,这与 /etc/mysql/debian.cnf 中的用户/密码混淆有关。看起来我安装的内容改变了这些值,但对于那些曾经遇到过同样问题的人,请确保 debian.cnf 中的值与您想要用于您的内容的用户/密码值相同。加密它不会有什么坏处,但 debian.cnf 总体上是不安全的。谢谢大家的帮助。
此外,上面的答案是正确的,只是对我来说从来没有出现过问题,尽管看起来有问题。这可能是由 debian.cnf 引起的。我从来没有遇到过 innodb 变量的问题,所以我没有对它做任何事情。