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

Mac环境下Laravel连接MAMP MySQL遇1045权限错误,求解决方案

解决Laravel与MAMP MySQL连接的1045访问被拒问题

我之前也踩过MAMP MySQL和Laravel连接的坑,这个SQLSTATE[HY000] [1045]错误大多是凭据、连接方式或者配置解析的问题,给你一步步排查解决的方法:

1. 先确认MAMP MySQL的实际运行状态与凭据

首先排除是MAMP本身的MySQL问题,直接用终端测试连接:

/Applications/MAMP/Library/bin/mysql -h localhost -P 8889 -u root -p

输入密码root后,如果能成功进入MySQL命令行,说明MAMP的MySQL没问题;如果连这个都失败,那你需要检查MAMP的MySQL设置:

  • 打开MAMP偏好设置,切换到MySQL标签,确认端口是8889,密码是root(如果改过密码,要用修改后的密码)。
  • 也可以打开MAMP自带的phpMyAdmin,查看mysql.user表,确认root用户有localhost或%的访问权限。

2. 检查Laravel .env文件的格式

你给出的配置是一行写多个变量,这可能导致Laravel解析错误。确保.env里的数据库配置是每行一个变量:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=8889
DB_DATABASE=carnet
DB_USERNAME=root
DB_PASSWORD=root

3. 尝试切换连接主机或指定Socket路径

MySQL对localhost和127.0.0.1的连接方式不同:localhost默认用Unix Socket连接,而127.0.0.1用TCP/IP连接。MAMP的Socket路径和Laravel默认的可能不一致,试试这两个方案:

  • 把DB_HOST改成127.0.0.1,直接用TCP/IP连接:
    DB_HOST=127.0.0.1
    
  • 如果还是不行,手动指定MAMP的Socket路径:
    DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
    

4. 确认目标数据库存在

打开MAMP的phpMyAdmin,检查是否已经创建了carnet数据库。如果没有,先在phpMyAdmin里创建这个数据库,再尝试连接。

5. 清除Laravel配置缓存

Laravel会缓存配置文件,修改.env后需要清除缓存让新配置生效:

php artisan config:clear
php artisan cache:clear

按这个顺序排查,应该能解决你的连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:26:52