我一直试图在我的docker上运行一个MSSQL脚本,它总是失败...我的语法错误或者其他什么......我看过这篇帖子但它不起作用 Executing SQL scripts on docker container
docker exec mssql '/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 -q </CRE.sql'
这返回了一个错误
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ************** -q </CRE.sql\": stat /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P AucMa1633485 -q </CRE.sql: no such file or directory"
我也试过这样的事情......
sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'gitgood12345' -q </CRE.sql
该命令返回给我这个错误,我不确定为什么......
Sqlcmd: '-q': Missing argument. Enter '-?' for help.
请帮帮我......第二种方法用来工作,我想我忘了一个参数或什么......
答案 0 :(得分:2)
sqlcmd
-q
选项需要您要运行的命令的参数。您的示例是在标准输入上输入命令,请尝试不使用-q
。
docker exec mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 < /CRE.sql
引用所有内容会导致容器尝试执行一个名为/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 -q </CRE.sql
的二进制文件,该二进制文件不存在。