在脚本中,我想确保一个mysql用户在特定数据库上根本没有任何权限.所以我这样做:
revoke all privileges on `testdb`.* from 'testuser'@'%'
Run Code Online (Sandbox Code Playgroud)
但是如果用户对此数据库没有任何权限,我会收到此错误:
There is no such grant defined for user 'testuser' on host '%'
Run Code Online (Sandbox Code Playgroud)
什么是绝对正确的,但我的脚本现在抛出一个错误并停止.我不想让我的脚本忽略此语句中的所有错误.
所以有类似的东西
revoke all privileges if exist ...
Run Code Online (Sandbox Code Playgroud)
我在mysql手册中找不到任何相关内容.
该mysql命令有一个-f选项可以防止脚本因错误而中止,因此您可能想尝试以下操作:
mysql -u myuser -f < script.sql
Run Code Online (Sandbox Code Playgroud)
当然,这也会忽略您可能不希望被忽略的其他错误......
不幸的是,这也不能与-e选项结合使用。但是,如果您从 bash 脚本运行 mysql,则可以通过使用heredoc轻松规避这一点:
mysql -u myuser -f <<EOF
REVOKE ALL PRIVILEGES ...
EOF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |