mysql以`systemctl start mysqld.service`的方式啟動一段時間后發現突然無法啟動,嘗試重新啟動也不能解決問題,排查問題時,先后通過`systemctl status mysqld.service`和`journalctl -xe` 命令查看問題,無所得.然后查看`/var/log/mysqld.log`發現日志內報錯信息如下:
網上查閱資料,有人說是 swap不夠了,使用`free`命令查看發現空余swap確實為0,但很奇怪,我買的vultr和ecs使用`free`看到的空余的swap都是0,那么為什么vultr部署的mysql服務掛掉了,ecs的沒有掛掉呢? 后來使用命令`sudo dd if=/dev/zero of=/swapfile bs=1M count=1024` 增加swap發現不起作用,我的空余swap仍然是0。
又查閱資料,有人說修改`my.cnf`里,將`innodb_buffer_pool_size` 注釋打開,然后重啟服務,發現還是報錯.
后來將我的`my.cnf` 里的`innodb_buffer_pool_size= 64M`調低到64M,然后重啟服務,mysql啟動成功。
總結: 可能是我的服務器配置較低,使得mysql5.7正常的 `Initializing buffer pool=128`無法分配成功,降低其配置即可以。
`
問題2: Changed limits: max_open_files: 5000 (requested 5010)
使用 ` ulimit -n `命令是否 linux系統做了限制;
查看`vim /usr/lib/systemd/system/mysqld.service`下的`LimitNOFILE `看是否有5000限制,調整成65535即可。
參考自 [這里](http://blog.itpub.net/20893244/viewspace-2152685/)
問題3: 阿里雲服務器 mysql經常自動停止掛掉重啟的完美解決方式
解決: [這里](https://blog.csdn.net/xuz0917/article/details/79100834)
[這里](https://jingyan.baidu.com/article/da1091fb032cad027949d64e.html)
問題4: IP address 'x.x.x.x' could not be resolved: Name or service not known
解決: [這里](https://www.jb51.net/article/70893.htm) `my.cnf`里配置`skip-name-resolve
`
問題5: Got error: 1045: Access denied for user 'root'@'localhost' (using password:
解決: `my.cnf`里去掉`skip-name-resolve