MyException - 我的反常网
当时方位:我的反常网» 数据库 » mysql数据库迁移到新的典范或许遇到的坑-mysql5.7

mysql数据库迁移到新的典范或许遇到的坑-mysql5.7

www.x8vin4.com  网友共享于:2018-06-06  阅读:0次
mysql数据库迁移到新的实例或许遇到的坑-mysql5.7

一、 mysql数据库导入sql文件时提示“Error Code: 1153 - Got a packet bigger than 'max_allowed_packet' bytes”

1.检查现在数据库装备

show VARIABLES like '%max_allowed_packet%';

显现如下成果

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

| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
阐明现在的装备是:1048576/1024/1024 = 1M
 
二、mysql 忽略表名大小写
由于linux下mysql默许是要区别表名大小写的。mysql是否区别大小写设置是由参数lower_case_table_names决议的
lower_case_table_names = 1 
不区别大小写即对表名大小写不灵敏)。这样设置后,表名在硬盘上以小写保存,MySQL将一切表名转换为小写存储和查找表上。该行为也合适数据库名和表的别号
也便是说,mysql设置为不分区大小写后,创立库或表时,不论创立时运用大写字母,创立成功后,都是强制以小写保存!
修正装备文件:
[root@test-huanqiu ~]# cat /etc/my.cnf                                          //增加下面一行设置
.....
[mysqld]
lower_case_table_names=1
 
三、mysql5.7.x:this is incompatible with DISTINCT
DISTINCT关键字经常在MySQL中运用,在mysql5.7曾经的版别中一般没有什么问题,可是在5.7今后的版别中会遇到这样的过错
Caused by: java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list, references column ‘game.giftbag0_.create_date’ which is not in SELECT list; this is incompatible with DISTINCT
 
过错提示DISTINCT不兼容,要么更改SQL,可是关于开发者来讲,sql运转一向都是正常的,或许是mysql 版别晋级导致的安全问题,5.7.x安全性提升了许多,处理办法能够考虑修正MySQL装备文件,找到对应的my.cnf或许my.ini
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
1
增加该行就ok!
 
还有一种错也是不兼容的问题导致的
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘nctest.pivot.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
 
这种问题便是sql_mode=only_full_group_by导致的,去掉only_full_group_by就处理了

 

文章谈论

软件开发程序过错反常ExceptionCopyright © 2009-2015 MyException 版权一切