问题描述
使用官方命令(如何安装)安装VestCP遇到如下错误
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h 16 password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
update-rc.d: using dependency based boot sequencing
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
Error: mysql start failed
使用service mysql restart命令重启MySQL发现如下错误,
[ ok ] Stopping MySQL database server: mysqld.
[....] Starting MySQL database server: mysqld/usr/sbin/mysqld: error while loading shared libraries: libcrypt.so.1: cannot map zero-fill pages: Cannot allocate memory
[ .k
[info] Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
或
[ ok ] Stopping MySQL database server: mysqld.
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
解决过程
进入MySQL的错误日志(默认目录/var/log/mysql/error.log或到MySQL配置文件中查看/etc/mysql/my.cnf)
发现如下错误记录
InnoDB: Error: pthread_create returned 11
于是断定是InnoDB引起的,使用如下命令解决
ulimit -s unlimited
问题解决,当然,本文的问题同样可以用禁用innodb(如果不需要该功能)的方法解决。
如果你也是在安装VestaCP的时候遇到同样的问题,那么问题已经解决,可以继续(强制)安装VestaCP了
bash vst-install-debian.sh --force