登录
首页 >  文章 >  php教程

XAMPP修改MySQL密码教程

时间:2026-05-15 12:00:58 499浏览 收藏

本文详解XAMPP环境下MySQL root密码无法修改(报错#1045)的根本原因与完整解决方案:针对默认无密码却强制验密的死锁困境,指导用户以管理员权限启动mysqld跳过权限验证,通过ALTER USER安全重置密码;同时系统性解决phpMyAdmin自动登录、无法登录等连带问题,涵盖auth_type配置切换、硬编码凭证清理、host匹配校验及配置文件残留排查,确保本地开发环境数据库访问既安全又可控。

XAMPP如何修改MySQL密码 XAMPP设置phpMyAdmin登录密码

MySQL root 密码改不了,mysql -u root -p 一直报 #1045 – Access denied for user 'root'@'localhost'

这是因为 XAMPP 默认启动时 root 用户无密码,但命令行默认尝试带密码登录,形成“想输密码却没密码可输”的死锁。不能靠反复试错,必须跳过权限系统重置。

  • 先在 XAMPP 控制面板中停止 MySQL 服务
  • Windows:以管理员身份打开 CMD,进入 C:\xampp\mysql\bin\,执行:
    mysqld --skip-grant-tables --skip-external-locking
  • macOS/Linux:终端执行:
    sudo /opt/lampp/sbin/mysqld --skip-grant-tables
  • 另开一个终端窗口,运行 mysql -u root(不加 -p),直连成功后执行:
    FLUSH PRIVILEGES;<br>ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
  • 关闭第一个终端里的 mysqld 进程,再通过 XAMPP 正常启动 MySQL

phpMyAdmin 登录页不弹出,直接进去了

这是 config.inc.php$cfg['Servers'][$i]['auth_type'] 被设成了 'config' —— 它会用配置里硬编码的账号自动登录,完全绕过登录框。

  • 编辑 C:\xampp\phpMyAdmin\config.inc.php(Windows)或 /opt/lampp/phpmyadmin/config.inc.php(macOS/Linux)
  • 找到这行:$cfg['Servers'][$i]['auth_type'] = 'config';,改成:$cfg['Servers'][$i]['auth_type'] = 'cookie';
  • 删掉或注释掉这两行(如果存在):$cfg['Servers'][$i]['user'] = 'root';$cfg['Servers'][$i]['password'] = '...';
  • 保存后重启 Apache(XAMPP 控制面板点 Stop → Start)
  • 若仍自动登录,清空浏览器中 phpmyadmin 相关 cookie,或换隐身窗口访问

改完密码后 phpMyAdmin 报 Cannot log in to the MySQL server

说明 phpMyAdmin 尝试连接时被 MySQL 拒绝了,不是前端问题,而是凭证不匹配或权限未生效。

  • 先验证 MySQL 是否真认这个密码:mysql -u root -p,输入新密码看能否进命令行
  • 确认 $cfg['Servers'][$i]['host']'localhost',不是 '127.0.0.1' —— MySQL 的权限表对二者视为不同主机
  • 检查 my.inimy.cnf 是否残留 skip-grant-tables,有就删掉并重启 MySQL
  • 如果用的是旧版 MySQL(SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxx'); 替代 ALTER USER

要不要在 config.inc.php 里写死密码?

不推荐。写死密码(auth_type = 'config')虽省事,但把敏感信息明文暴露在 Web 可读目录下,本地开发都算高风险;而 auth_type = 'cookie' 是平衡安全与便利的合理选择。

  • cookie 模式下,密码只在登录时传输一次,不存配置文件,也不进日志
  • 确保 mysqli 扩展已启用(XAMPP 默认开启,检查 phpinfo() 中是否有 mysqli 行)
  • 如果后续要开放外网或多人共用,务必禁用 root 远程登录,新建专用账户并限制 HOST
实际操作中最容易漏掉的是:改了 MySQL 密码但忘了 FLUSH PRIVILEGES,或者改了 config.inc.php 却没重启 Apache。这两个动作缺一不可。

今天关于《XAMPP修改MySQL密码教程》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>