Laravel项目(XAMPP环境)MySQL连接及phpMyAdmin权限问题求助
解决phpMyAdmin连接MySQL 1045权限错误的详细步骤
第一步:确认MySQL中目标用户的存在与权限
先验证你在.env里设置的账号(比如examplee)是否真的在MySQL中存在,且权限配置正确:
- 打开终端/命令行,用root或有管理权限的账号登录MySQL:
输入root密码后进入MySQL命令行。mysql -u root -p - 查看所有MySQL用户:
检查结果里是否有SELECT user, host FROM mysql.user;examplee@localhost或examplee@127.0.0.1:- 若没有
examplee@localhost,创建该用户并设置密码:CREATE USER 'examplee'@'localhost' IDENTIFIED BY '你的密码'; - 若用户存在但密码错误,重置密码:
ALTER USER 'examplee'@'localhost' IDENTIFIED BY '你的密码';
- 若没有
- 给用户授予开发环境所需的足够权限:
执行完输入GRANT ALL PRIVILEGES ON *.* TO 'examplee'@'localhost'; FLUSH PRIVILEGES;exit;退出MySQL命令行。
第二步:检查phpMyAdmin的config.inc.php配置
确保配置文件完全匹配你的MySQL账号信息:
- 找到phpMyAdmin安装目录,若没有
config.inc.php,复制config.sample.inc.php并重命名为config.inc.php。 - 打开文件,修改以下核心配置项:
$cfg['Servers'][$i]['user'] = 'examplee'; // 与.env一致的MySQL用户名 $cfg['Servers'][$i]['password'] = '你的密码'; // 与.env一致的MySQL密码 $cfg['Servers'][$i]['host'] = 'localhost'; // 若你的MySQL用户是@127.0.0.1,这里改为127.0.0.1 $cfg['Servers'][$i]['auth_type'] = 'config'; // 确保为config模式,避免其他认证方式干扰
第三步:清除缓存并重启服务
phpMyAdmin或Web服务器可能缓存旧配置,导致修改不生效:
- 找到phpMyAdmin安装目录下的
tmp文件夹(无则新建),删除其中所有文件。 - 重启Web服务器(Apache/Nginx)和MySQL服务:
- 用XAMPP/WAMP的话,直接在控制面板点击重启按钮。
- Linux环境执行:
sudo systemctl restart apache2 sudo systemctl restart mysql
第四步:验证用户登录有效性
先跳过phpMyAdmin,直接用终端测试账号密码是否能登录MySQL:
mysql -u examplee -p
输入密码后若能进入MySQL命令行,说明账号密码没问题,问题出在phpMyAdmin配置;若仍报错,回到第一步重新检查用户权限。
额外提示
- 不想把密码写在配置文件里,可将
auth_type改为cookie,phpMyAdmin会弹出登录框,手动输入.env中的账号密码即可。 - 若用Laravel Sail/Docker环境,phpMyAdmin是容器部署的,需确保它和MySQL容器在同一网络,且
host设为MySQL容器名称(比如mysql),而非localhost。
内容的提问来源于stack exchange,提问作者Vopshm Vopshmm
相关产品推荐
相关产品推荐

