You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22安装MySQL Server8初始设置root无法登录且改密失败

问题原因

Ubuntu 22.04 软件源内置的 MySQL Server 8 安装完成后,默认对root@localhost用户使用auth_socket认证插件,而非传统的密码认证:该插件会校验连接发起者的系统用户名,只有系统root用户可以通过本地socket无密码登录MySQL的root账号,普通用户直接调用mysql/mysql_secure_installation命令都会被拒绝访问。

你之前尝试的两种改密方案失效,各有明确原因:

  • init-file方案失效:你将init脚本存放在/home/me路径下,Ubuntu普通用户家目录默认权限为750,运行MySQL服务的mysql用户没有该目录的访问权限,根本读不到你写的改密脚本,ALTER语句从未被执行。
  • skip-grant-tables方案失效:
    1. 你直接调用mysqld命令启动服务,没有走systemd服务配置,/var/run/mysqld目录不会被自动创建,才会出现sock文件找不到的报错;
    2. 手动创建目录后连接到的是手动启动的异常实例,没有正常加载权限表配置,执行改密语句自然返回0 rows affected,密码修改不会持久化到系统服务启动的MySQL实例中。
正确操作步骤
  1. 先清理所有残留的MySQL进程,避免多实例冲突:
sudo pkill mysqld
# 确认无残留进程,无输出代表清理完成
ps aux | grep mysqld | grep -v grep
  1. 通过systemd正常启动MySQL服务:
sudo systemctl start mysql
# 确认服务状态为active (running)
sudo systemctl status mysql
  1. 用系统root权限登录MySQL(默认配置下无需密码):
sudo mysql -u root
  1. 登录成功后,按需修改root用户的认证方式和密码:
    如果需要支持密码登录(任意系统用户输入正确密码即可登录),执行以下语句:
-- 如果需要兼容旧客户端,用mysql_native_password插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你设置的新密码';
-- 如果不需要兼容旧客户端,可以用MySQL8默认的caching_sha2_password插件,安全性更高
-- ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你设置的新密码';

FLUSH PRIVILEGES;
exit;
  1. 验证配置:
  • 直接执行mysql_secure_installation,输入刚才设置的密码即可正常进入安全配置流程;
  • 执行mysql -u root -p,输入新密码即可正常登录,无需加sudo。
可选优化建议

如果仅在本地管理数据库,不需要用密码登录root账号,无需修改认证插件,每次登录时加sudo mysql -u root即可,auth_socket认证方式不依赖密码,安全性更高。不建议开放root用户的远程访问权限,远程管理请单独创建权限受限的普通用户。

内容的提问来源于stack exchange,提问作者cuneyttyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 01:27:32