Laravel执行php artisan migrate报SQLSTATE[HY000] [1049]未知数据库错误如何解决
Laravel migrate报1049未知数据库问题解决方案
- 第一步:确认基础服务与数据库存在性
先确认MAMP面板中MySQL服务处于正常运行状态,打开MAMP自带的phpMyAdmin,检查是否存在名称与.env中DB_DATABASE完全一致的thevinesa数据库,注意数据库名区分大小写,不要有多余的前后空格。 - 第二步:排查多MySQL实例冲突
部分设备会提前预装独立版MySQL,和MAMP自带的MySQL是两个独立实例,你在phpMyAdmin创建的数据库只会存在于MAMP的MySQL中。可以在终端执行以下命令验证当前命令行默认连的MySQL是否正确:
输入密码后执行mysql -u root -p -P 3306show databases;,如果返回结果中没有thevinesa,说明你MAMP的MySQL端口实际不是3306(MAMP默认MySQL端口为8889,修改配置时需要同时修改MAMP面板端口和.env中的DB_PORT参数)。 - 第三步:清除Laravel配置缓存
如果你之前运行过php artisan config:cache生成过配置缓存,修改.env后的配置不会自动生效,需要在项目根目录执行以下命令清除缓存:
清除完成后重新执行php artisan config:clearphp artisan migrate测试。 - 第四步:补充MAMP专属socket配置
如果以上操作都无效,属于MAMP环境的常见socket匹配问题,在.env的数据库配置段新增一行socket配置即可:
保存后再次清除配置缓存,重试迁移命令即可正常执行。DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
内容的提问来源于stack exchange,提问作者Thando Hlophe
相关产品推荐
相关产品推荐

