mysql 遇到的问题

1、Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
https://www.cnblogs.com/da19951208/p/9566221.html
select @@sql_mode;
global 的sql_mode的值都为:
  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

  only_full_group_by说明:
  only_full_group_by :使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好 。

 解决:
  执行以下两个命令:

mysql> 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';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
  这两个命令,去掉 sql_mode 的 ONLY_FULL_GROUP_BY  


2.Lock wait timeout exceeded; try restarting transaction是锁等待超时。
是当前事务在等待其它事务释放锁资源造成的。

解决方法:

在mysql查询中执行以下指令

select * from information_schema.innodb_trx

找出与其他几个有参数不同的线程,找出他的线程号mysql_thread_id

执行命令kill +线程号mysql_thread_id即可解决。

注意:mysql连接后,操作的过程中不要突然停止程序,不然很可能出现这个错误。

原文地址:https://www.cnblogs.com/xl717/p/11612231.html