- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 Archlinux 64x (4.17.4-1-ARCH) 上使用 Docker(版本 18.06.0-ce,构建 0ffa8257ec)。我正在使用 Microsoft's MSSQL docker 容器 CU7。每次我尝试输入查询或运行 SQL 文件时,我都会收到此警告消息:
Sqlcmd: Warning: The last operation was terminated because the user pressed CTRL+C.
然后当我用Datagrip 检入数据库时,查询还没有被执行!这是我的命令:
docker pull microsoft/mssql-server-linux:2017-CU7
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=GitGood*0987654321" -e "MSSQL_PID=Developer" -p 1433:1433 --name beep_boop_boop -d microsoft/mssql-server-linux:2017-CU7
# THIS
sudo echo "CREATE DATABASE test;" > /test.sql
docker exec beep_boop_boop /opt/mssql-tools/bin/sqlcmd -U SA -P GitGood*0987654321 < test.sql
# OR
docker exec beep_boop_boop /opt/mssql-tools/bin/sqlcmd -U SA -P GitGood*0987654321 -Q "CREATE DATABASE test;"
我的问题是如何避免在 MSSQL 查询中发出警告 operation was terminated by user
警告?
最佳答案
你应该使用 docker-compose ,我相信它会让你的生活更轻松。我的猜测是你在不知不觉中遇到了错误。第一次尝试时,我使用了不符合安全要求的不安全密码,并收到此错误:
ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
我看到你的密码很安全,但请注意你的密码中有一个 *
,如果没有正确转义,它可能会执行。
或者使用命令行运行时服务器没有启动,例如:
# example of a failing attempt
docker run -it --rm -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=GitGood*0987654321' -p 1433:1433 microsoft/mssql-server-linux:2017-CU7 bash
# wait until you're inside the container, then check if server is running
apt-get update && apt-get install -y nmap
nmap -Pn localhost -p 1433
如果它没有运行,你会看到类似的东西:
Starting Nmap 7.01 ( https://nmap.org ) at 2018-08-27 06:12 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000083s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
1433/tcp closed ms-sql-s
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds
docker-compose.yml
version: '2'
services:
db:
image: microsoft/mssql-server-linux:2017-CU7
container_name: beep-boop-boop
ports:
- 1443:1443
environment:
ACCEPT_EULA: Y
SA_PASSWORD: GitGood*0987654321
然后运行以下命令并等待图像准备就绪:
docker-compose up -d
docker-compose logs -f &
up -d
妖魔化容器,使其继续在后台运行。logs -f
将读取日志并follow(类似于tail -f
所做的)&
在后台运行命令,这样我们就不需要使用新的 shell现在像这样在该容器内运行一个 bash:
docker-compose exec db bash
进入图像后,您可以运行命令
/opt/mssql-tools/bin/sqlcmd -U SA -P $SA_PASSWORD -Q "CREATE DATABASE test;"
/opt/mssql-tools/bin/sqlcmd -U SA -P $SA_PASSWORD -Q "SELECT name FROM master.sys.databases"
注意我是如何在这里重用 SA_PASSWORD
环境变量的,所以我不需要重新输入密码。
现在享受结果
name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
test
(5 rows affected)
为了正确设置,我建议用 docker-compose.yml
中的以下行替换 environment
键:
env_file:
- .env
这样,您可以将 secret 存储在 docker-compose.yml
之外,并确保您不会在版本控制中跟踪 .env
(您应该将 .env
添加到您的 .gitignore
并在您的存储库中提供一个 .env.example
和适当的文档。
这是一个示例项目,它确认它在 Travis-CI 中工作:
https://github.com/GabLeRoux/mssql-docker-compose-example
可能有一些其他的方法可以用一个衬里来完成这个,但是为了可读性,通常最好只使用一些脚本。在 repo 中,我采用了一些快捷方式,例如 run.sh
中的 sleep 10
。这可以通过实际等待数据库以正确的方式启动来改进。初始化脚本也可以是 entrypoint.sh
等的一部分。希望它能帮助您入门 🍻
关于sql - 为什么 Docker 中的 MSSQL 在 sql 查询中返回 "The last operation was terminated because the user pressed CTRL+C"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52030385/
我一直在尝试配置 Terminator 以尊重我的终端的大小。这可能吗?事实上,每次我重新打开 Terminator 时,我都必须将几个终端的大小调整为我想要的配置。 首选项似乎没有配置这个选项。它似
我正在尝试通过命令在 Mac Catalina 10.15.5 中自动添加 crontab: echo -e "* * * * * \run.sh"|crontab - 此命令复制 crontab -
我有一堆名为1.png,2.png等的png文件,我想从它们全部创建一个动画gif图像。我尚未成功找到将这些png文件转换为单个gif动画的终端命令的解决方案。 有人可以发布一些我可以尝试的命令吗?我
我正在运行 dup1 example来自 The Go Programming Language本书(相关代码如下所示): for input.Scan() { counts[input.Te
有没有办法从命令行启动 gnome-terminal(即,使用/usr/bin/gnome-terminal 命令)并让新终端继承运行命令的终端的环境变量和其他设置变量?场景是这样的: 打开终端 设置
每次我打开终端时,我都会收到这样的信息: bash: /usr/local/Cellar/nvm/0.33.0/nvm.sh: No such file or directory 我试过重新加载。不知
如何更改背景颜色?我选择了 Profile > Background > solid color ,但我在哪里可以选择颜色? 最佳答案 有两种受支持的方法可以更改 xterm 的背景颜色(请记住 xt
我知道我可以右键单击 > 打开选项卡以在 gnome-terminal 中打开一个新选项卡,但是如何从脚本中执行相同操作?如果我使用 'gnome-terminal --tab-with-profil
安装 OSX Lion 后,我尝试: nano /etc/apt/sources.list 但我收到此错误: Error opening terminal: xterm-256color 如果我尝试切
所以我创建了一个名为 specs 的 mysql 表,我想将一个 csv 文件导入到该表中。 CREATE TABLE specs ( `Id` INT NOT NULL, `Brand` V
我正在运行 Xubuntu 13.04,我想使用 Vim 作为我所有的默认编辑器。我下载了很多vim配色方案试了一下,但是都不像官方截图。 例如,vim 自带的颜色模式——沙漠应该是这样的: 但在我的
我在 Mac OS Big Sur 上安装了 Spyder 5。 我从终端运行了这个命令:conda install spyder-terminal -c spyder-ide该命令运行无误。仍然没有
ssh -t remotehost vim /tmp/x.txt 我知道我可以运行上面这样的命令。 但我希望能够在远程计算机上运行任何本地 bash 代码。因此,我想调用远程“bash -s”,以便可
我正在尝试在我的内容管理系统中创建一项功能,用户可以上传 CSV 文件,然后解析该文件并将数据放入 MySQL 数据库中。为此,我使用文件输入和 SQL 查询。 $sql = "LOAD DATA L
我在 .inputrc 上发现了很多问题,答案包括使用 Mac OS X terminal.app 的人。 但是我已经设置了这个属性并且它没有改变 readline 的行为。我在 Ubuntu 上尝试
我正在尝试绘制由 rpart 生成的回归树使用 partykit .假设使用的公式是 y ~ x1 + x2 + x3 + ... + xn .我想要实现的是在终端节点中带有箱线图的树,顶部有一个标签
在 Visual Studio Code 中,Ctrl-k 快捷键绑定(bind)到 clearing the terminal . 我已经configured bash as my terminal
我正在学习斯坦福大学 Andrew Wu 教授的精彩机器学习类(class)。当我在 ex5 文件中执行绘图函数时,octave cli 命令行报告以下警告: set terminal aqua en
我在 Ubuntu 上使用 Python 3.6 的多处理来处理与另一台设备的更快通信。 我设置 daemon = True 以在父进程完成时终止子进程。但是,当主进程终止时,另一个进程(以下代码中的
我有一个 ant 任务,它使用 执行冗长的构建操作. Ant 由 Windows 命令行中的批处理文件启动。如果我通过关闭窗口来终止 ant 任务,则进程由 启动继续运行。当 ant 进程本身终止
我是一名优秀的程序员,十分优秀!