Mac下Laradock导入SQL文件报错Failed to open file,求正确路径
Laradock下MySQL导入SQL文件报错的解决办法
问题根源
Laradock的MySQL容器运行在Docker隔离环境中,容器无法直接读取Mac主机的本地文件路径,你之前用的/Users/paul/Downloads/TraveLearn.sql是Mac本地路径,容器内部没有这个目录,所以会报Failed to open file错误。
两种可行解决方案
方案1:利用容器已挂载的目录导入
Laradock默认会将你的Laravel项目目录挂载到容器内的/var/www路径,步骤如下:
- 将
TraveLearn.sql复制到Laravel项目目录:/Users/paul/Sites/travelearn - 在Laradock目录下执行命令进入MySQL容器:
docker-compose exec mysql bash - 登录MySQL(默认密码为root,可查看Laradock的
.env文件确认):mysql -u root -p - 切换到目标数据库:
USE 你的数据库名; - 执行导入命令,使用容器内的路径:
SOURCE /var/www/TraveLearn.sql;
方案2:直接通过管道导入(更适合大文件)
无需进入MySQL交互模式,直接在Mac终端执行命令,将本地文件传入容器:
docker-compose exec -T mysql mysql -u root -p你的密码 目标数据库名 < /Users/paul/Downloads/TraveLearn.sql
注意:
-T参数用于关闭伪终端,避免大文件导入时出现异常;-p和密码之间不要加空格,例如-proot
内容的提问来源于stack exchange,提问作者Paul Godard
相关产品推荐
相关产品推荐

