日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql设置常用——修改大小写、设置sql_mode不支持功能、

發布時間:2025/4/16 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql设置常用——修改大小写、设置sql_mode不支持功能、 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,MySQL 設置不區分大小寫、

***:錯誤原因:后臺java代碼連接數據庫mysql 報錯

java運行報錯日志:### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'cpw.admin_User' doesn't exist

Linux系統下mysql設置不區分大小寫

1,查詢當前設置:

查詢當前支持的: mysql> show variables like '%lower%';

lower_case_table_names=1

其中0:區分大小寫,1:不區分大小寫

lower_case_file_system
表示當前系統文件是否大小寫敏感,只讀參數,無法修改。
ON ?大小寫不敏感?
OFF 大小寫敏感?
lower_case_table_names
表示表名是否大小寫敏感,可以修改。
lower_case_table_names = 0時,mysql會根據表名直接操作,大小寫敏感。?
lower_case_table_names = 1時,mysql會先把表名轉為小寫,再執行操作。
?

2,修改設置:

# vim /etc/my.cnf 7 lower_case_table_names=1# systemctl restart mysqld

mysql> show variables like '%lower%'; #修改后查詢修改為——1

*** 在部分版本的MySQL下,如果之前有大寫的表,修改參數后改表會提示不存在,而且也無法修改,應用程序就操作不了。

問題剖析:

如果在lower_case_table_names=0情況下已經導入了大量的表和數據,表名有大寫,有小寫,此時再換成lower_case_table_names=1會出錯。

解決辦法:在lower_case_table_names=0時,將表名全部改成小寫的;如果有數據庫名稱中存在大寫字母,也需同時改名,改名方法為新建一個小寫的數據庫, 再改表名。(最方便的是直接使用MySQL界面客戶端修改)

全部改名之后,再設置lower_case_table_names=1,重啟MySQL。

更改后查詢確認:

3,重啟服務測試。

二,修改sql_mode,不支持的查詢問題

java代碼里查詢mysql時報錯:

### Error querying database. ?Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'cpw.un.SpMoney' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

sql直接運行查詢: 報錯!!!

mysql> SELECT usi.spreaderID,us.counts,us.phone,us.realName,us.identityCard,SUM(usi.spreadNum) spreadNum,SUM(usi.tradingMoney) tradingMoney ,son.SpMoney-> FROM usr_Spreader us RIGHT JOIN usr_SpreadInfo usi ON us.ID=usi.spreaderID LEFT JOIN usr_userextension son ON son.spreaderID=us.ID-> WHERE us.phone=100; //查詢推廣人總額

==============================================================================

解決思路:

MySQL 5.7版本sql_mode=only_full_group_by問題

用到GROUP BY 語句查詢時com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'col_user_6.a.START_TIME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by錯誤

解決方法 :執行SET GLOBAL sql_mode = ''; 把sql_mode 改成非only_full_group_by模式。驗證是否生效?SELECT @@GLOBAL.sql_mode 或者 SELECT @@sql_mode:

直接修改也可以:SET 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:

mysql> SELECT @@GLOBAL.sql_mode; 或者 mysql> SELECT @@sql_mode; #查詢支持的sql_mode

2,修改sql_mode:

mysql> SET GLOBAL sql_mode = ''; #把sql_mode 改成非only_full_group_by模式

?

方法2,直接修改sql_mode:

mysql> select @@sql_mode;mysql> SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

解決后的查詢:

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的mysql设置常用——修改大小写、设置sql_mode不支持功能、的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。