虽然这个问题已经有了不少答案,但我还没能解决其中任何一个。以下是我给出的事实。
我大约 2 个月没有使用过 Ubuntu 14.04,现在更新了。更新后,mysql 无法工作,并出现以下错误
PHP(本地网络开发):
Warning: mysqli_connect(): (HY000/2002): No such file or directory
安慰:
sudo service mysql start
start: Job failed to start
或者(非 root 用户)
service mysql start
start: Unknown job: mysql
MySQL 安装检查显示:
$ dpkg --get-selections | grep mysql
libapache2-mod-auth-mysql install
libmysqlclient18:amd64 install
libmysqlclient18:i386 install
libqt4-sql-mysql:i386 install
mysql-common install
mysql-server-5.5 deinstall
mysql-workbench-community install
php5-mysql deinstall
php7.0-mysql install
我发现虽然安装了 mysql-server-5.5,但是缺少一些其他包,但是从我目前所读的内容来看,这些包对于服务器运行来说不是必需的。
此外,尝试使用 mysqladmin 获取服务器状态将返回:
$ mysqladmin -u root -p status
mysqladmin: command not found
我也尝试过改变mysql数据目录的权限,因为我读到root权限可能会禁止访问和启动mysql服务器,尽管这不应该是一个考虑因素,因为mysql甚至没有被识别为一个命令。
如果我知道我的数据库会保留在原处,那么尝试重新安装 mysql 就不会有问题了。
更新
我也尝试了 dmesg 命令,得到了这个结果
dmesg | grep mysql
[ 4.315790] init: Failed to spawn mysql main process: unable to execute: No such file or directory
[ 3556.147153] audit: type=1400 audit(1482506149.514:64): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=4942 comm="apparmor_parser"
[ 3556.149528] init: Failed to spawn mysql main process: unable to execute: No such file or directory
[ 4666.027886] audit: type=1400 audit(1482507259.370:65): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=5724 comm="apparmor_parser"
[ 4666.030250] init: Failed to spawn mysql main process: unable to execute: No such file or directory
[ 8341.035215] audit: type=1400 audit(1482510934.298:66): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7776 comm="apparmor_parser"
[ 8341.046625] init: Failed to spawn mysql main process: unable to execute: No such file or directory
显然 mysqld 丢失了(?)
locate mysqld
返回
/etc/apparmor.d/usr.sbin.mysqld
/etc/apparmor.d/cache/usr.sbin.mysqld
/etc/apparmor.d/local/usr.sbin.mysqld
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
/usr/lib/mysql-workbench/mysqldump
任何帮助都值得感激:)
答案1
阅读后MySQL 文档,我注意到您实际上可以 (?) 复制数据文件并将其移回新安装(冷备份)。所以我只是复制了文件并继续安装 MySQL 5.6。
在我看来,移动文件是没有必要的,因为安装后数据库已经全部到位。