最近从 14.04 升级到 16.04。Apache2 和 PHP 客户端都可以工作。但/var/run/mysqld
在停止或重新启动 MySQL 服务后会丢失。尝试卸载 MySQL 5.7 并重新安装,并使用 恢复目录mysqld.sock
。停止/重新启动 MySQL 后,此问题仍然消失。
当目录消失时,登录和密码错误,无法加载 MySQL。安全模式也不起作用。
事实证明这是 Ubuntu 上 MySQL 5.6 的一个错误。尚未验证它是否也是 5.7 的一个错误,但存在与https://bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823。在尝试本页上的 #3 之前,发现了不同的解决方法。也许 #3 也有效。
添加以下内容作为问题的一部分,因为当该目录消失时会发生这种情况:
# Unable to log in to MySQL 5.7 with or without passwords or in safe mode on Ubuntu 16.04 #
这是最初的问题。我尝试卸载 MySQL 5.7 并重新安装。这没有用。重新安装后,我使用 root 作为用户,没有密码。即使正确的用户/密码组合也不起作用。重新启动 MySQL 后,我搜索了 .sock 文件,但找不到,因此提出了这个问题。我在 Linux (i686) 上使用 MySQL 5.7.17。
答案1
这个解决方法:
sudo service mysql stop
mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
重启MySQL之后,一切正常。