首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取无错误消息的MySQL查询结果(取消显示错误消息)

问获取无错误消息的MySQL查询结果(取消显示错误消息)
EN

Stack Overflow用户
提问于 2021-07-21 10:11:40
回答 1查看 46关注 0票数 0

我需要禁止mysql命令打印到标准输出的所有错误消息。我看到了许多其他类似的问题,但所有的答案都建议了避免这些消息的变通方法(在执行查询之前检查数据库/表/列是否存在)。但我需要mysql命令在出错时返回失败退出代码,并且除了成功运行的查询中显式请求的数据外,不输出任何内容。-s键对隐藏错误消息没有帮助。

我的任务是在脚本中执行MySQL查询,并获得所请求的数据(用-s键打印)或非零退出代码。我不想在执行目标查询之前检查每个表/列/等的存在。我如何才能做到这一点?

UPD:我试过了,但没有用:

代码语言:javascript
复制
mysql ... db -s -N -e "SELECT config_id FROM core_config_data LIMIT 1;" 2> /dev/null
EN

回答 1

Stack Overflow用户

发布于 2021-07-21 11:13:43

总结一下:

您希望mysql命令执行以下操作:

  • not print any error
  • exit with a non-success code when a query fails

(当查询失败时,不会打印任何错误并退出并显示不成功代码)

那我有个好消息要告诉你!错误的输出将始终在stderr上。因此,您只需将输出重定向到null或您喜欢的任何位置。

代码语言:javascript
复制
root@icarus ~/so # mariadb -Dmaio290sql1 -e 'SELECT * FROM wp_users' -s 2> bla.txt
[actual content]
root@icarus ~/so # echo $?
0
root@icarus ~/so # mariadb -Dmaio290sql1 -e 'SELECT * FROM nope' -s 2> bla.txt
root@icarus ~/so # echo $?
1

最后一个查询抛出了一个错误,因此退出代码不是0。不过,这是在MariaDB上测试的:10.3.27-MariaDB-0+deb10u1 Debian 10。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68463224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档