Angular-Laravel应用执行php artisan migrate遇启动警告及数据库错误求助
解决Angular-Laravel应用中
php artisan migrate的两类问题 别担心,咱们先理清楚:你遇到的PHP启动警告和数据库连接错误是完全独立的问题,我会一步步帮你搞定。
一、解决PHP启动警告(无关数据库,但影响日志整洁)
这些警告是因为你启用了完全不需要的PHP扩展,而你的环境里根本没有安装它们:
- 你用的是MySQL,
interbase、oci8_12c、pdo_firebird、pdo_oci这些都是针对Firebird、Oracle等其他数据库的扩展,对你的项目毫无用处。 - 解决步骤:
- 找到你的
php.ini配置文件(可以通过执行php --ini命令找到具体路径) - 找到以下几行,重新在开头加上分号
;注释掉:;extension=interbase ;extension=oci8_12c ;extension=pdo_firebird ;extension=pdo_oci - 重启你的PHP服务(比如Apache、Nginx+PHP-FPM或者本地开发服务器),这些启动警告就会彻底消失。
- 找到你的
二、解决MySQL数据库连接错误(migrate失败的核心原因)
这个错误才是导致迁移命令失败的关键,是MySQL 8.0的默认认证方式和PHP PDO兼容性问题导致的:
- 原因:MySQL 8.0默认使用
caching_sha2_password认证机制,但旧版本的PHP PDO不支持这种方式,所以数据库连接被拒绝。 - 解决步骤:
- 打开MySQL Workbench,连接到你的数据库服务器
- 执行以下SQL语句(记得替换成你Laravel配置里的数据库用户名和密码):
举个例子,如果你的用户名是ALTER USER 'your_db_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_db_password'; FLUSH PRIVILEGES;root,密码是123456,就改成:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; - 检查Laravel项目根目录的
.env文件,确保数据库配置信息准确无误:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=daw DB_USERNAME=your_db_username DB_PASSWORD=your_db_password - 最后重新执行迁移命令:
这下应该就能正常执行数据库迁移了。php artisan migrate
内容的提问来源于stack exchange,提问作者MicuStefi
相关产品推荐
相关产品推荐

