MySQL 的安全更新模式

删除mysql 的一个表的数据的时候报告如下错误:

mysql> delete from upload_images;
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

mysql> show variables like '%sql_safe%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| sql_safe_updates | ON |
+------------------+-------+
1 row in set (0.00 sec)

mysql> set sql_safe_updates=0;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%sql_safe%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| sql_safe_updates | OFF |
+------------------+-------+
1 row in set (0.00 sec)
mysql> delete from upload_images;
Query OK, 505 rows affected (0.01 sec)

然后再启用safe mode

mysql> set sql_safe_updates=1;

时间: 2024-12-24 10:36:22

MySQL 的安全更新模式的相关文章

如何解决mysql的master-slave模式中ReplicationDriver的使用问题

/** * 作者:张荣华 * 日期:2008-6-19 **/ 前言: 之前downpour有一个贴(http://www.iteye.com/topic/143714)讨论了在java中如何使用mysql的master-slave模式(master-slave模式的介绍见Qieqie的这个贴:http://www.iteye.com/topic/162717),其中readonly大大提到我们可以使用ReplicationDriver来从connection层把read或者write操作分开.

Mysql SQL服务器模式介绍_Mysql

mysql SQL服务器模式 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用--sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(--sql-mode =""

mysql启用skip-name-resolve模式一些问题小结

mysql 启用skip-name-resolve模式时出现Warning的处理办法,当前如果你的授权是针对所有主机的你不会遇到该问题 在优化MYSQL配置时,加入 skip-name-resolve ,在重新启动MYSQL时检查启动日志,发现有警告信息. 121126 11:57:22 [Warning] 'user' entry 'root@localhost.localdomain' ignored in --skip-name-resolve mode. 121126 11:57:22

MySQL中的安全更新模式

删除mysql 的一个表的数据的时候报告如下错误: mysql> delete from upload_images; ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column mysql> show variables like '%sql_safe%'; +------------------+------

mysql的sql_mode模式

在oracle或sqlserver中,如果某个表的字段设置成not null,insert或update时不给这个字段赋值,比如下面这样: 表t_test(id,name)中id,name都不允许为空, insert into t_test(name) values('xxx') 必然报错,这是天经地义的事情,但是在mysql中这是有可能成功,具体取决于sql_mode的设置   大概上讲,sql_mode可以分为二大类: 一类是所谓的宽松无敌模式(my.ini中sql_mode设置为空或仅NO

mysql中binlog_format模式与配置详解

① STATEMENT模式(SBR) 每一条会修改数据的sql语句会记录到binlog中.优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能.缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题) ② ROW模式(RBR) 不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了.而且不会出现

mysql结构和模式优化

1. 保持你的数据库整理性. 2. 旧数据归档 – 删除多余的行返回或搜索查询. 3. 将您的数据加上索引. 4. 压缩文字和BLOB数据类型 – 以节省空间和减少磁盘读取次数. 5. UTF 8和UTF16都低于latin1执行效率. 6. 有节制地使用触发器. 7. 冗余数据保持到最低限度 – 不重复不必要的数据. 8. 使用链接表,而不是扩展行. 9. 注意数据类型,在您的真实数据中,尽可能使用最小的一个. 10. 如果其他数据经常被用于查询时,而BLOB / TEXT数据不是,就把BLO

看mysql手册中模式(SQL_MODE)学到的知识

使用phpmyadmin导出sql的时候,常常会出现SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";的语句.通过看sql手册,明白了这里 设置的含义. 那么可以回答几个疑惑性问题了一.设置sql模式有什么作用?会产生什么方面的影响?模式定义mysql会支持哪些sql语法.以及应执行哪种数据验证检查.最终达到的目标:适应在不同环境中适应mysql,因为可 以根据各自的程序不同设置对于德sql操作模式.输入如下语句可以知道,当前使用的sql模式,select @@

在CentOS 7上配置MySQL的主从复制模式 (Master-Slave Replication)

MySQL的主从复制广泛用于数据库备份.故障转移.数据分析等场合. MySQL主从复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).因此,要进行复制,必须在主服务器上启用二进制日志.从服务器从主服务器接收已经记录到其二进制日志的更新,当一个从服务器连接主服务器时,主服务器从日志中读取最后一次成功更新的位置,从服务器接收从那时起发生的更新,并在本机上执行相同的更新,然后等待主服务器通知新的更新.从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新. 测试环境