Laravel 12(Windows环境)执行schema:dump命令失败求助
schema:dump 执行失败的问题 在Windows 10 PowerShell环境下运行Laravel项目的php artisan schema:dump命令时,出现mysqldump命令执行失败、退出码1的错误,可通过以下步骤排查解决:
确认mysqldump已加入系统PATH
打开PowerShell执行mysqldump --version,若提示命令不存在,找到MySQL安装目录的bin文件夹(例:C:\Program Files\MySQL\MySQL Server 8.0\bin),将其路径添加到系统环境变量PATH中,重启PowerShell后重试。验证数据库连接参数
检查项目根目录.env文件中的DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD参数,确保无拼写错误或多余空格。可先执行php artisan db:connect测试数据库连接是否正常,连接成功后再执行schema:dump。手动测试mysqldump命令
Windows PowerShell对引号和变量的解析逻辑与Linux不同,可手动执行mysqldump命令验证:mysqldump --user=你的数据库用户名 --password=你的数据库密码 --host=localhost --port=3306 --no-tablespaces --skip-add-locks --skip-comments --skip-set-charset --tz-utc 你的数据库名 --routines --result-file=./database/schema/dump.sql --no-data若手动执行成功,可尝试改用CMD执行
php artisan schema:dump,CMD对这类命令的解析兼容性更好。检查目录权限
确认Laravel项目的database/schema文件夹存在且当前用户拥有写入权限,若文件夹不存在,手动创建该目录。调整mysqldump参数适配MySQL版本
部分参数可能与你的MySQL版本不兼容(如--tz-utc、--no-tablespaces),可尝试去掉这些参数后手动执行命令,若成功则修改config/database.php中connections.mysql.dump的配置项,移除对应不兼容参数。
内容的提问来源于stack exchange,提问作者shah sawood

