如何以其他用户身份运行mysql查询

问题描述 投票:0回答:1

我有一个 mysql 命令,我可以以我的用户身份执行它

testuser
。 root 无权访问数据库。

我正在创建一个以

root
运行的启动脚本,但我需要在此脚本期间以
testuser
的形式运行上面的查询。我试过这个:

sudo -u testuser "mysql -D keystone -e "UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');""

但是我收到错误:

bash: syntax error near unexpected token `('

有人知道我的语法哪里不对吗?

解决方案是整个 mysql 命令没有引号:

sudo -u testuser mysql -D keystone -e "UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');"
mysql bash su
1个回答
1
投票

第二个

"
正在关闭以
mysql
开头的字符串,尝试引用内部带引号的字符串:

sudo -u testuser "mysql -D keystone -e \"UPDATE endpoint SET url=REPLACE(url, '$OLD_IP', '$HOST_IP');\""
© www.soinside.com 2019 - 2024. All rights reserved.