MySQL root@localhost登录失败及重装时找不到mysql-server包求助
解决MySQL 5.7 root@localhost登录失败及重装找不到包的问题
先解决root登录失效的问题(优先尝试,不用重装)
我之前也碰到过类似的MySQL 5.7 root突然登不上的情况,先给你说不用重装就能恢复的办法:
- 停止MySQL服务:
sudo systemctl stop mysql # 要是你用的是旧版Ubuntu,就用这个:sudo service mysql stop - 跳过权限验证启动MySQL:
sudo mysqld_safe --skip-grant-tables & - 无密码直接登录root:
mysql -u root - 切换到系统库,重置root密码(注意MySQL 5.7用的是
authentication_string字段,不是旧版的password):USE mysql; UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; EXIT; - 重启MySQL服务,用新密码登录试试:
sudo systemctl restart mysql mysql -u root -p
如果还是不行,建议去看错误日志找具体原因:
cat /var/log/mysql/error.log
里面可能会有密码过期、权限表损坏这类关键提示。
解决重装时「E: Unable to locate package mysql-server」的问题
这个错误是因为新版本系统(比如Ubuntu 20.04+)的默认软件源里已经没有MySQL 5.7的包了,得手动添加官方源:
- 下载MySQL 5.7的APT配置包:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb - 运行配置包,在弹出的界面里依次选择「MySQL Server & Cluster」→「mysql-5.7」→「Ok」保存配置:
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb - 更新软件源缓存:
sudo apt update - 现在就能正常安装MySQL 5.7了:
sudo apt install mysql-server-5.7
内容的提问来源于stack exchange,提问作者jicman




