alter user是修改root密码的首选方法,需先查root的host值,执行alter user 'root'@'localhost' identified by '新密码'并flush privileges;mysql 5.7.6+及8.0+禁用password()函数,且须注意密码策略、认证插件兼容性及phpmyadmin配置同步。

用 root 登录后直接改密码,但必须确认权限够用
只有能写 mysql.user 表的账号(比如刚装完的 root)才能在「用户账户」页看到「编辑权限」按钮。如果你点进去只看到用户名列表、没任何操作入口,说明当前登录账号没全局权限——别试了,换 root 登,或者跳到 SQL 标签页手动执行。
ALTER USER 是首选,别再用 UPDATE user SET password=... 了
MySQL 5.7.6+ 和 8.0+ 默认禁用 PASSWORD() 函数,UPDATE mysql.user SET Password = PASSWORD('xxx') 会直接报错 FUNCTION does not exist。正确做法是:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';- 如果不确定 host 是不是
localhost,先查:SELECT User, Host FROM mysql.user WHERE User = 'root'; - 执行完必须跟一句
FLUSH PRIVILEGES;,否则新密码不生效
输完密码立刻失败?检查三件事:密码策略、认证插件、phpMyAdmin 配置
界面点「执行」没报错但下次仍登不上,大概率卡在这三处:
- MySQL 8.0+ 默认启用
validate_password插件,密码必须 ≥8 位、含大小写字母+数字+特殊符号;输123456会被静默拒绝 - 如果客户端(比如旧版 phpMyAdmin 或某些 PHP 连接库)不支持
caching_sha2_password,得显式指定插件:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; - 改完 MySQL 密码,
config.inc.php里$cfg['Servers'][$i]['password']的值也得同步更新,否则 phpMyAdmin 自己连不上 —— 这个最容易被忽略
改完登不进 phpMyAdmin?auth_type 设置决定有没有登录框
WAMP/XAMPP 环境下,即使填对了 $cfg['Servers'][$i]['password'],如果 $cfg['Servers'][$i]['auth_type'] 是 config,phpMyAdmin 就自动用配置里的凭据连,不会弹登录框;想手动输密码,得改成 cookie 或 http:
-
$cfg['Servers'][$i]['auth_type'] = 'cookie';→ 弹登录页,密码存在浏览器 session 里 -
$cfg['Servers'][$i]['auth_type'] = 'http';→ 浏览器原生弹窗认证,更轻量 - 改完记得重启 Web 服务(如 Apache),否则配置不加载
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











