
在执行这条命令时,mysql报错:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences ->SQL Editor and reconnect.
这是因为在mysql在safe-updates模式中,如果where后跟的条件不是主键id就会报这种错误。出现1175错误时,只要更改一下mysql的安全模式就行,以下两种方式都行:
mysql> set sql_safe_updates=0
mysql>set sql_safe_updates=off
SQL_SAFE_UPDATES有两个取值0和1, 或ON和OFF,默认值是1:
SQL_SAFE_UPDATES = 1/ON时,不带where和limit条件的update和delete *** 作语句是无法执行的,即使是有where和limit条件但不带主键id的update和delete也不能执行。
SQL_SAFE_UPDATES =0/OFF时,update和delete *** 作将会顺利执行。
所以,出现1175错误的时候,可以先设置SQL_SAFE_UPDATES的值为0/OFF,然后再执行更新即可。
你写了一条正常的update 或者 delete 语句时,语句本身是没问题的,但是却执行不了。原因是是MySQL Workbench的安全设置。当要执行的SQL语句是进行批量更新或者删除的时候就会提示这个错误。打开Workbench的菜单Edit->Preferences xxx->切换到SQL Editor
把Forbid UPDATE and DELETE statements without a WHERE clause (safe updates)的勾去掉击[OK]按钮重新启动就OK了。
或者在每句语句前,加上‘SET SQL_SAFE_UPDATES=0’
问题就解决了。
(ps:以后我会分享我所遇到的问题,这里持续更新!)
一.MySQL密码的恢复方法之一如果忘记了MySQL的root密码,可以用以下方法重新设置:1.切换到root下suroot2.KILL掉系统里的MySQL进程;killall-TERMmysqld3.用以下命令启动MySQL,以不检查权限的方式启动;safe_mysqld--skip-grant-tables&4.然后用空密码方式使用root用户登录MySQL;mysql-uroot5.修改root用户的密码;mysql>updatemysql.usersetpassword=PASSWORD('123456')whereUser='root'mysql>flushprivilegesmysql>quit重新启动MySQL,就可以使用新密码登录了。二.MySQL密码的恢复方法二有可能你的系统没有safe_mysqld程序(ubuntu *** 作系统,apt-get安装的mysql),下面方法可以恢复1.切换到root下suroot2.停止mysqld;/etc/init.d/mysqlstop3.用以下命令启动MySQL,以不检查权限的方式启动;mysqld--skip-grant-tables&4.然后用空密码方式使用root用户登录MySQL;mysql-uroot4.修改root用户的密码为123456(当然,你需要将123456改成你要设置的密码);mysql>updatemysql.usersetpassword=PASSWORD('123456')whereUser='root'mysql>flushprivilegesmysql>quit重新启动MySQL/etc/init.d/mysqlrestart就可以使用新密码123456登录了。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)