mysql - 如何以其他用户身份运行 mysql 查询
问题描述
我有一个 mysql 命令,我可以作为我的用户“testuser”执行。Root 无权访问数据库。
我正在创建一个以 root 身份运行的启动脚本,但我需要在此脚本期间以 testuser 身份从上面运行查询。我试过这个:
sudo -u testuser "mysql -D keystone -e "UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');""
但我得到了错误:
bash:意外标记'('附近的语法错误
有谁知道我的语法在哪里关闭?
解决方案是整个 mysql 命令周围没有引号: sudo -u testuser mysql -D keystone -e "UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');"
解决方案
第二个"
是关闭以 开头的字符串mysql
,尝试引用内部引用的字符串:
sudo -u testuser "mysql -D keystone -e \"UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');\""
推荐阅读
- gatsby - 使用 GatsbyJs 和 Cloudflare Workers 从 Contentful 中自动提取博客文章
- javascript - 使用 Ajax 结果更新选择选项元素
- java - C# HttpUtility.UrlEncode 与 Java URLEncoder.encode 不一致
- c# - 从 MATLAB 到 C#。C# 程序有滞后
- reactjs - SonarQube with Jest and react - 覆盖 0 条新线路
- azure - 机器人框架:httpStatusCode”:504 无法发送活动:机器人超时
- python - Python 硒点击
- python - 为什么 request.body 在使用美味派的调用自定义 API 时为空?
- rust - 在 Rust 中将文本数字解析为 UTF-8 字符?
- c++ - 指向 MainWindow 函数的指针数组导致“不应忽略的无效值”