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

如何将SQL文件导入Laravel Sail的MySQL容器?

Laravel Sail导入SQL到MySQL容器的解决方案

可行,你遇到的"the input device is not a TTY"错误是因为sail exec默认会尝试分配TTY终端,而重定向输入时不需要TTY,只需调整命令参数即可解决。

解决方法

方法1:关闭TTY分配(推荐)

在sail exec后添加-T(或完整写法--no-tty)参数,禁用TTY分配,命令如下:

sail exec -T mysql mysql -u username -p database_name < file.sql

执行后会提示输入数据库密码,直接输入即可完成导入。

方法2:命令行传递密码(不推荐生产环境)

如果不想手动输入密码,可以将密码直接写在命令中(注意明文密码存在安全风险):

sail exec -T mysql mysql -u username -p'your_password' database_name < file.sql

方法3:先复制文件到容器再导入

也可以先把SQL文件复制到MySQL容器内部,再执行导入:

# 复制本地SQL文件到容器的/tmp目录
sail cp file.sql mysql:/tmp/file.sql
# 进入容器执行导入
sail exec -T mysql mysql -u username -p database_name < /tmp/file.sql

注意事项

  • 确保file.sql在当前执行命令的目录下,否则请使用文件的绝对路径
  • 替换命令中的username、database_name为你实际的数据库用户名和库名
  • 生产环境禁止在命令行明文传递数据库密码

内容的提问来源于stack exchange,提问作者Nir ina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:07:03