gpt4 book ai didi

MySQL shell/client : Read-only access, 或 "safe history"选项?

转载 作者:可可西里 更新时间:2023-11-01 07:02:25 25 4
gpt4 key购买 nike

昨天,我正在编写一个 shell 脚本,用于向 MySQL 数据库执行一些中等复杂的表插入操作。自然地,我一直打开一个 mysql 客户端 shell 窗口,以运行 describe 命令、示例查询,并在测试周期之间删除我的测试行。

是的,这是在实时的生产数据库上。

在我完成编码时,我请一位同事检查我的工作,然后再运行脚本来处理批处理条目。我们仔细检查了所有内容,他认为这对他来说很合适,然后我就启动了脚本。没问题。

然后我回到我的实时 shell,从历史中提取一行,更改 where 子句以查看生成的插入,然后按 [Enter] ...

...不幸的是我没有查看我正在编辑的整个命令!这是一条 delete 语句,而不是 select

糟糕。

好的,所以我知道我可以设置一个不同的 DBMS 服务器,将这个数据库的转储恢复到那个服务器上,并在上面完成我的所有测试。我们都知道,这样会更安全、更有纪律。我们也都知道,有时在直播商店工作更方便。 (在这种情况下,风险比您预期的要低一些......有问题的数据库用于批处理,我们能够在 删除< 的 10 分钟内从仅 20 分钟的备份中恢复)。

但是,这让我想到了一个问题:mysql 客户端 shell 是否有一些选项(或补丁)可以只读?是否有一些选项可以修改它在交互历史中存储的内容? (将 deletedrop table 以及类似的“危险”语句标记为“在重新执行前提示验证”的东西?mysql客户端是否有类似于 bash HISTIGNORE 功能的东西?

执行此类工作的更安全方法是什么(除了处理完全独立的数据库开发副本)?

最佳答案

如果您想要完全只读访问权限,请创建一个没有任何写入权限的用户帐户。

或者只是习惯于在交易中工作。 :) 打开 shell 时键入 BEGIN,如果/当您确实需要时才键入 COMMIT

关于MySQL shell/client : Read-only access, 或 "safe history"选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com