mysql5.7设置SQL Mode
前言
- mysql 5.7.25
ERROR 1055 (42000) 錯(cuò)誤
mysql> select host,user from user; +-----------+---------------+ | host | user | +-----------+---------------+ | % | root | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+ 4 rows in set (0.00 sec)mysql> select host,user from user group by host; ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and c ontains nonaggregated column 'mysql.user.User' which is not functionally depende nt on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_g roup_byuser列未在group by host子句中出現(xiàn),導(dǎo)致mysql報(bào)1055錯(cuò)誤。
解決辦法1
修改sql語句可以解決:
mysql> select host,min(user) from user group by host; +-----------+---------------+ | host | min(user) | +-----------+---------------+ | % | root | | localhost | mysql.session | +-----------+---------------+ 2 rows in set (0.00 sec)解決辦法2
修改sql語句不是萬能的,無法修改sql語句時(shí),需要修改mysql的配置來解決。
該問題跟mysql的Server SQL Modes設(shè)置有關(guān)系。當(dāng)sql_mode=only_full_group_by時(shí),會(huì)出現(xiàn)1055錯(cuò)誤。將only_full_group_by從sql_mode中剔除即可解決上面的錯(cuò)誤。
比如這樣:
通過set sql_mode='';設(shè)置Server SQL Modes時(shí),僅在一次會(huì)話中有效。
永久性的設(shè)置Server SQL Modes需要修改my.cnf配置文件。
在my.cnf中修改內(nèi)容:
[mysqld] sql_mode=""重啟mysql后,登錄mysql查看設(shè)置結(jié)果:
mysql> select @@sql_mode; +------------+ | @@sql_mode | +------------+ | | +------------+ 1 row in set (0.00 sec)其它
關(guān)于Server SQL Modes
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
https://www.cnblogs.com/Zender/p/8270833.html
https://www.cnblogs.com/fireporsche/p/8618691.html
總結(jié)
以上是生活随笔為你收集整理的mysql5.7设置SQL Mode的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美股周四:三大股指齐跌,Arm跌超5%,
- 下一篇: SQLErrorCodes loaded