AutoCreate

MySql版本问题sql_mode=only_full_group_by, 无法使用group by 语句修复

半腔热情 提交于 2019-12-17 14:32:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 建议直接查看原文, 本文只做记录 https://blog.csdn.net/u011893509/article/details/87896806 MySql版本问题sql_mode=only_full_group_by 查看sql_mode select @@sql_mode 1 查询出来的值为: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 1 在查出结果中可以看到里面包含了ONLY_FULL_GROUP_BY,因此我们要讲ONLY_FULL_GROUP_BY从中去掉,重新设置值。 set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 1 上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行 set

Hibernate does not create tables in spite of hibernate.hbm2ddl.auto=create

你离开我真会死。 提交于 2019-12-11 11:07:08
问题 I 've tried several editions but NOT use. I need to resolve this part to continue the project . The hibernate is not generating the tables in the database, I can not find where the error is. The code is: package br.com.evolutionary.modelo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Pokemon { @Id @GeneratedValue private Long id; @Column private String nome; public Long getId() {

mysql binlog 恢复

萝らか妹 提交于 2019-12-01 04:02:28
开始先执行每天自动备份的数据库 show master status; 再使用binlog恢复 binlog直接恢复数据库,不建议直接使用 mysqlbinlog --start-datetime="2018-8-11 02:00:00" C:\Users\donald\Desktop\mysql.000243 | mysql -uroot -p sakila 优先使用下面的,把binlog导出sql文件,看下没有问题再重新导入 mysqlbinlog --start-datetime="2018-8-11 02:00:00" --database=sakila C:\Users\donald\Desktop\mysql.000243 >C:\Users\donald\Desktop\binlog.sql 恢复的数据不包含视图,视图需要另外使用工具导出导入 mysqldump -E -R -u ursername-ppassword --databases db> C:\Users\Administrator\Desktop\db.dump 使用mysqldump ,系统不会区分视图和表,因此有视图的时候dump一定会报错 另外恢复的数据库,某些视图或者function是使用非root 账号创建的,对应的数据也要有同样的账号,否则会有 execute command denied

新特性解读 | MySQL 5.7升级到MySQL 8.0的注意事项

旧时模样 提交于 2019-12-01 01:01:23
原创: 郭斌斌 前 言 本文是由爱可生运维团队出品的「MySQL专栏」系列文章,内容来自于运维团队一线实战经验,涵盖MySQL各种特性的实践,优化案例,数据库架构,HA,监控以及故障分析,有扫雷功效。 有深度的MySQL开源社区持续运营维护的小目标: 每周至少推送一篇高质量技术文章 每月研发团队发布开源组件新版 每年1024开源一款优质开源工具 2019年至少25场社区活动 欢迎大家持续关注~ 引言 近期项目进行MySQL 5.7.21到MySQL 8.0.13的升级测试,采用逻辑升级,配置文件来自于生产环境。在初始化MySQL 8.0时,初始化命令秒级完成,而数据目录却是空的,执行初始化操作的shell窗口也没有任何的报错提示。 通过翻阅官方手册发现MySQL 8.0.13中NO_AUTO_CREATE_USER这种sql_mode已经废弃,而配置文件的sql_mode有这个配置项,最终导致了实例初始化失败。为了减少升级过程中出现类似问题,因此对MySQL 5.7到8.0的升级进行部分整理,主要包括: 升级对MySQL版本的要求、升级都做了哪些内容、数据库升级做了哪些步骤以及注意事项。 升级要求 MySQL 5.7升级到MySQL 8.0,要求MySQL5.7的版本是MySQL 5.7.9或者更高的GA版 不支持跨版本升级 升级内容 升级数据字典表的版本 升级MySQL

Mysql的sql_mode模式

回眸只為那壹抹淺笑 提交于 2019-11-29 22:09:05
sql_mode 是一个很容易被忽视的配置,宽松模式下可能会被输入一些非准确数据,所以生产环境下会要求为严格模式,为了保持生产环境和开发环境,测试环境一致性,我们开发环境和测试环境也要配置成为严格模式。 sql_mode常用值 ONLY_FULL_GROUP_BY:在分组查询语句中如果一个select中的列没有在group by中出现,则该语句是不合法的。 NO_AUTO_VALUE_ON_ZERO:在默认情况下自增长列在插入0或NULL时会自动插入下一个自增长值。当设置该模式情况下,插入0时不会进行自增长依然插入0值。 STRICT_TRANS_TABLES:对事务表进行限制,当一个数据不能插入到事务表中时中断当前操作。对非实物表不做限制。 NO_ZERO_IN_DATE:只要日期的月和日中含有0值都报错,但是‘0000-00-00’除外。 NO_ZERO_DATE:只有‘0000-00-00’报错。 ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如果非该模式下被0除时mysql返回NULL。 NO_AUTO_CREATE_USER:禁止创建密码为空的用户。 NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

神奇的SQL之层级 →为什么 GROUP BY 之后不能直接引用原表中的列

核能气质少年 提交于 2019-11-29 21:43:06
GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM 、AVG 等)、常量。我们来看个例子 我们有 学生班级表(tbl_student_class) 以及 数据如下 : DROP TABLE IF EXISTS tbl_student_class; CREATE TABLE tbl_student_class ( id int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', sno varchar(12) NOT NULL COMMENT '学号', cno varchar(5) NOT NULL COMMENT '班级号', cname varchar(20) NOT NULL COMMENT '班级名', PRIMARY KEY (id) ) COMMENT='学生班级表'; -- ---------------------------- -- Records of tbl_student_class -- ---------------------------- INSERT INTO tbl_student_class VALUES ('1', '20190607001',

安装了mysql5.7,用group by 查询时抛出如下异常:

≯℡__Kan透↙ 提交于 2019-11-29 19:42:20
Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userinfo.t_long.user_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 原因: MySQL 5.7.5和up实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的。关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册。) 执行以下个命令,可以查看 sql_mode 的内容。 mysql> SHOW SESSION VARIABLES; 1 mysql> SHOW GLOBAL VARIABLES; 1 mysql> select @@sql_mode; 1 可见session和global 的sql

mysql 命令集

微笑、不失礼 提交于 2019-11-29 09:38:47
sql_mode定义了mysql应该支持的sql语法,数据校验等 select @@sql_mode; 属性 说明 ONLY_FULL_GROUP_BY 对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中 STRICT_TRANS_TABLES 如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制 NO_ZERO_IN_DATE 在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。 NO_ZERO_DATE 在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告 ERROR_FOR_DIVISION_BY_ZERO 在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误(否则为警告)。如果未给出该模式,被零除时MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果为NULL NO_AUTO_CREATE_USER 防止GRANT自动创建新用户,除非还指定了密码。 NO

mysql5.7报错this is incompatible with sql_mode=only_full_group_by

烈酒焚心 提交于 2019-11-28 22:12:18
下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。 一旦开启 only_full_group_by ,感觉, group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样, group by 的功能将变得十分狭窄了 only_full_group_by 模式开启比较好。 因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。 具体出错提示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 1、查看sql_mode select

mysql5.7报错this is incompatible with sql_mode=only_full_group_by

折月煮酒 提交于 2019-11-28 19:32:41
下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。 一旦开启 only_full_group_by ,感觉, group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样, group by 的功能将变得十分狭窄了 only_full_group_by 模式开启比较好。 因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。 具体出错提示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 1、查看sql_mode select