如何 运行 mysql 以其他用户身份查询
How to run mysql query as other user
我有一个 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');\""
我有一个 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');\""