V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sophymax
V2EX  ›  程序员

过年了,手滑了 , 作死了

  •  
  •   sophymax · 2015-02-17 12:05:08 +08:00 · 5543 次点击
    这是一个创建于 3364 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在mysql的命令行模式下 , 以前经常执行一句 delete from aaa where uid != ""
    现在想执行delete from aaa where uid="fasdfhasdklfhasdjklfh" , 懒得重新敲一遍 , 就按上方向键 找出以前的那条SQL , 把引号里面填充上了 "fasdfhasdklfhasdjklfh" , 然后我就回车执行了 , 呵呵呵呵 , 虽然不是太重要的数据 , 但还是惊出一身冷汗 , 以后一定要把权限限制死 , 不能偷懒 。
    另外话说这个上下方向键找出历史SQL的功能有办法关掉吗?
    26 条回复    2015-02-22 22:16:51 +08:00
    msg7086
        1
    msg7086  
       2015-02-17 12:07:40 +08:00
    →_→ 所以你需要phpmyadmin,执行以前一定会问你,你确定要DELETE吗?
    ytf4425
        2
    ytf4425  
       2015-02-17 12:35:49 +08:00
    @msg7086 = =要是是我我会看都不看就确定的。。。
    sophymax
        3
    sophymax  
    OP
       2015-02-17 12:38:52 +08:00
    @ytf4425 回车的时候那种快感记忆让我迅速按下了回车.......
    ytf4425
        4
    ytf4425  
       2015-02-17 12:43:57 +08:00
    @sophymax 嘿嘿嘿我也是,所以还是不要偷懒重新打一遍为好
    caixiexin
        5
    caixiexin  
       2015-02-17 13:25:36 +08:00 via Android
    脑袋不清楚的时候坚决不做危险操作,有一次午饭吃完脑袋发昏想drop本地库结果删了远程测试库,还好有备份。当时吓得午睡都睡不着了
    另外开启binlog也是很有用的o_O
    caixiexin
        6
    caixiexin  
       2015-02-17 13:27:58 +08:00 via Android
    @msg7086 其实询问也没用,很多人会下意识点确定的,除非像某安全卫士卸载时那个反人类的对话框23333
    ETiV
        7
    ETiV  
       2015-02-17 13:59:58 +08:00
    LZ 的 "把权限限制死" 没用啊, 如果你想删东西, 必定会登录有删除权限的账号.
    sophymax
        8
    sophymax  
    OP
       2015-02-17 14:15:32 +08:00 via iPad
    @ETiV 增加点麻烦就是了......平常随意的操作不允许delete,想delete的时候进特定账号,告诫自己一定要小心,现在就是很放松的感觉,一顺手就把回车敲了,当然在能delete的账号里又顺手了那就真要剁手了
    br00k
        9
    br00k  
       2015-02-17 14:22:39 +08:00
    多备份。
    kslr
        10
    kslr  
       2015-02-17 15:01:28 +08:00
    SQL审核
    zyc841584303
        11
    zyc841584303  
       2015-02-17 15:41:28 +08:00
    你需要个mysql gui工具 heidisql delete会有提示的
    Bairrfhoinn
        12
    Bairrfhoinn  
       2015-02-17 15:50:11 +08:00   ❤️ 1
    我执行删除操作之前,都是先写个SELECT语句,把要删除的记录先列出来,确定是我要删除的那些,再把SELECT语句改成DELETE语句...
    YuenLeon
        13
    YuenLeon  
       2015-02-17 16:54:32 +08:00 via Android
    想了想,要是我的话,也很难避免会出错。有备份数据可恢复吗?删除的话,最好把步骤搞复杂点,中间加个确认的步骤。或者像@Bairrfhoinn这样,先备份再删除。
    tdifg
        14
    tdifg  
       2015-02-17 16:56:18 +08:00
    唉,挺好了,以前rm -rf / 的路过……
    simapple
        15
    simapple  
       2015-02-17 17:37:50 +08:00
    @tdifg 还有一个前提 你一直是root 用户
    benjiam
        16
    benjiam  
       2015-02-17 17:43:59 +08:00 via Android
    居然不是提交一个事务来做这种事情
    tdifg
        17
    tdifg  
       2015-02-17 18:33:33 +08:00
    @simapple sudo 本来想删某文件夹,结果按了tab后没有补全,没反应过来直接回车了
    yonka
        18
    yonka  
       2015-02-17 21:32:51 +08:00 via Android
    sudo shutdown -p 0
    我以为是本地,没想到是远程生产机器
    zrp1994
        19
    zrp1994  
       2015-02-17 21:35:07 +08:00
    transaction……rollback……commit什么的
    tnx2014
        20
    tnx2014  
       2015-02-17 21:48:30 +08:00
    @ytf4425
    @caixiexin
    @sophymax

    其实我想说删除前确认或者其他敏感操作确认还是有用的,特别是手残不小心输入或按到的时候,除非是非常信任非常自信的情况下,否则我是不会随便看都不看按确定的。
    imzyxwvu
        21
    imzyxwvu  
       2015-02-19 03:26:07 +08:00
    @tdifg 记得rm -rf /除了要root还得要加一个参数才能用吧
    kn007
        22
    kn007  
       2015-02-19 09:38:53 +08:00
    @sophymax 同快感。。。为大脑的迅速反应剁手
    chinvo
        23
    chinvo  
       2015-02-19 18:43:54 +08:00
    @yonka 我們老大這麼幹過,然後我大冬天跑了兩里路去機房按開機按鈕
    vivisidea
        24
    vivisidea  
       2015-02-19 19:37:02 +08:00
    对线上环境要有敬畏之心~之前从一位前辈听来的,一直深以为然。

    当然能收的权限是要收掉的,DROP 之类的
    DELETE 我的经验是,
    1. 先 SELECT 出来确认结果,然后 DELETE 一定要带 LIMIT(哪怕只有一条),防止长时间锁表
    2. 来路不明的 SQL 语句一定不直接贴到 MySQL 终端,至少要把 TAB 之类的整理干净
    3. 最好在测试环境先演练好
    vivisidea
        25
    vivisidea  
       2015-02-19 19:40:45 +08:00
    @caixiexin +1

    曾经有一次下班赶着要走,又想着“把一个清理数据的脚本写好再走吧”,于是慌乱中把线上数据给错删了
    sophymax
        26
    sophymax  
    OP
       2015-02-22 22:16:51 +08:00
    @yonka 我也干过类似的事情,重启远程机器的网卡 ,然后你懂的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   763 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 22:34 · PVG 06:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.