执行 service mysqld start后出现如下提示信息:
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/vm13168.bx.sce.sina.com.pid).
直接用这个错误信息去搜索,给出的解决方案大多是让修改配置文件中basedir和datadir的路径或者是权限相关的问题。
这些都正常设置后,还是会出现这样的问题。
在搜索的过程中,受到启发可以直接去看看数据库的报错日志。
一开始的错误日志是卡在“Plugin ‘FEDERATED’ is disabled”这里,查找到的解决方法是:XXX,之后再启动mysql,还是报错,但庆幸的是报错的内容不一样了,这次变成了“InnoDB: mmap(137363456 bytes) failed; errno 12 [ERROR] InnoDB: Cannot allocate memory for the buffer pool”,用free命令查看发现swap空间未分配都为0,搜索了下解决办法,执行如下操作分配swap空间
dd if=/dev/zero of=/swap bs=1M count=512 //创建一个swap文件,大小为512M
mkswap /swap //将swap文件变为swap分区文件
swapon /swap //将其映射为swap分区
此时使用free -m命令即可看到swap分区已存在了,然后启动mysql服务即可。
为了保证下次系统启动后,此swap分区被自动加载,需要修改系统的fstab文件,操作如下:
vi /etc/fstab
//在其中添加如下一行
/swap swap swap defaults 0 0
此处不建议将swapon 写到/etc/fstab这里,直接写到/etc.rc.local中更为稳妥