Ubuntu 下 MySQL 无法登录 的原因很多,下面按最常见情况给你一个排查清单。你可以对照逐步确认。
sudo systemctl status mysql
sudo systemctl start mysql
mysql -u root -p
输入密码后提示:
Access denied for user 'root'@'localhost'
Ubuntu 默认使用 auth_socket 插件,而不是密码登录。
sudo mysql
SELECT user, host, plugin FROM mysql.user WHERE user='root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
然后就可以:
mysql -u root -p
sudo systemctl stop mysql
sudo mysqld --skip-grant-tables --skip-networking &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
sudo systemctl restart mysql
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
检查:
bind-address = 127.0.0.1
port = 3306
127.0.0.1 ✅0.0.0.0 并授权用户SELECT user, host FROM mysql.user;
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
FLUSH PRIVILEGES;
sudo aa-status
如 MySQL 被限制,可尝试:
sudo systemctl restart apparmor
sudo systemctl status mysql
sudo mysql
mysql -u root -p
SELECT user, host, plugin FROM mysql.user;
请贴出:
例如:
Ubuntu 22.04
MySQL 8.0
mysql -u root -p
Access denied for user 'root'@'localhost'
我可以一步一步帮你解决 ✅