mysql error 1175_Mysql 报错 ERROR 1175 - SQL_SAFE_UPDATES

摘要Mysql 报错 ERROR 1175, 是因为启动的时候开启了安全更新模式导致的

报错信息如下ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

SQL_SAFE_UPDATES

这个报错是因为在更新表的时候where条件中没有到没有含有KEY的列导致的。

另外更新的时候没有where条件也会报类似的错误root@127.0.0.1 : auditAdmin 16:54:10> create table lc_temp(id int,name varchar(20)) ;Query OK, 0 rows affected (0.03 sec)root@127.0.0.1 : auditAdmin 16:54:23> update lc_temp set name='james';ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY columnroot@127.0.0.1 : auditAdmin 16:54:32>

注意开头提示的“你在使用安全更新模式”,参考Mysql官网,在启动mysql的时候使用"安全更新模式 --safe-updates"相当于设置了如下命令SET sql_safe_updates=1, sql_select_limit=1000, max_join_size=1000000;

附加

这里说明下sql_select_limit参数,为了防止出现不带where条件的全表查询导致资源浪费。如果表中的记录大于1000条的时候,只显示1000条记录

有两种方式解决## modify sql_safe_updatesset sql_safe_updates=0;set sql_safe_updates=off;## limit select username from userinfo limit 10001;

当报错的时候检查,这个变量是开启的状态root@127.0.0.1 : (none) 16:42:44> show variables like '%SQL_SAFE_UPDATES%';

+------------------+-------+| Variable_name    | Value |

+------------------+-------+

| sql_safe_updates | ON    |+------------------+-------+1 row in set (0.00 sec)

修改为OFF或者0SET sql_safe_updates = 0;

SET sql_safe_updates = OFF;

再去执行update,就没有问题

作者:全栈运维

链接:https://www.jianshu.com/p/9b8125c87519

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值