重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» 數據庫 » mysql數據庫遷移到新的范例可能遇到的坑-mysql5.7

mysql數據庫遷移到新的范例可能遇到的坑-mysql5.7

www.h0f1.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設置為不分區大小寫后,創建庫或表時,不管創建時使用大寫字母,創建成功后,都是強制以小寫保存!
修改配置文件:
[[email protected] ~]# 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 版權所有
重庆幸运农场中奖金额