温馨提示×

ubuntu mysql为啥登录失败

小樊
47
2026-09-12 23:43:02
栏目: 云计算

Ubuntu 上 MySQL 登录失败是很常见的问题,原因非常多。下面按最常见 → 较少见的顺序帮你排查,你对照看一下是哪一类。


一、最常见原因

1️⃣ 密码错误 / 不知道密码

很多人刚装完 MySQL,以为有密码,其实默认可能不是密码登录

检查方式:

sudo mysql -u root

如果能进,说明是 auth_socket 认证(见第 2 点)。


2️⃣ Ubuntu 默认使用 auth_socket(不是密码)

Ubuntu 官方 MySQL 默认:

root 用户只能通过 sudo 登录

不是密码错误,而是不允许密码登录

查看:

SELECT user, host, plugin FROM mysql.user;

如果看到:

root | localhost | auth_socket

✅ 解决方式(改成密码登录):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

3️⃣ 服务没启动

systemctl status mysql

如果没运行:

sudo systemctl start mysql

4️⃣ 端口 / 连接方式错误

本地登录要用:

mysql -u root -p

而不是:

mysql -h 127.0.0.1 -u root

(除非你改过配置)


二、常见报错对照表

Access denied for user 'root'@'localhost'

✅ 密码错 / auth_socket / 用户不存在


Can't connect to local MySQL server

✅ MySQL 没启动
✅ socket 文件不存在(/var/run/mysqld/mysqld.sock


Unknown database 'mysql'

✅ 数据目录损坏或初始化失败


Too many connections

✅ 连接数爆了(通常不是登录本身问题)


三、快速自检清单(建议你照着做)

# 1. 看服务
systemctl status mysql

# 2. 用 sudo 试试
sudo mysql -u root

# 3. 看认证方式
sudo mysql -e "SELECT user,host,plugin FROM mysql.user;"

四、如果你愿意,我可以直接帮你定位

你可以把完整报错信息贴出来,比如:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

或者告诉我:

  • MySQL 版本(mysql --version
  • Ubuntu 版本
  • 用的是 root 还是普通用户

我可以直接告诉你哪一步错了、怎么改

0