按照惯例,遇到Linux相关的问题先说系统版本,我用的是Ubuntu 16.04。
事情的起因是这样的,把打了个jar包扔上服务器,然后nohup java -jar
运行,本来一切正常(之前一直都很正常),但这次报了个没见过的错:
The driver has not received any packets from the server。
网上查了一下说是连接超时,然后我就想着打开MySQL去改一下设置,结果发现MySQL连不上了,运行mysql -u root -p
报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)。
然后我就按照网上的说法,删掉了/tmp/mysql.sock和/tmp/mysql.sock.lock,然后systemctl restart mysql
重启MySQL,结果这次连MySQL服务都没法启动了,报错:
The server quit without updating PID file.
看起来是删文件删出问题了。网上资料基本上是基于5.x的,而MySQL到了8.0之后发生了很大变化,没有找到一个能用的方案。
有人说删掉data目录下ib开头的文件可以解决,我试了一下,除了会导致启动报错之外并没有什么效果。后来查了一下资料才知道,ib开头的文件和InnoDB引擎有关系。
中间还出现了几次not found的错误,后来发现只是因为没有权限而已,chmo