問題描述
使用官方命令(如何安裝)安裝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