上述错误是因为mysql的配置文件不全或者错误导致的
第一步
查找mysql的配置文件 my.cnf
linux
使用whereis my.cnf 或者 find / -name my.cnf 进行查找 一般默认在/etc/my.cnf
windows
1.第一种方法:在DOS命令行窗口登录MySQL,输入如下命令查看MySQL的安装目录和数据存放目录,MySQL的配置文件就在数据存放目录下:
2.另外一种方法:在“开始 → 所有程序 → MySQL”下面找到MySQL的命令行客户端工具,右键选择该命令行工具查看“属性”,在“目标”里面也可以看到MySQL使用的配置文件位置。
注意:ProgramData目录可能是“隐藏”的,如果在显示的分区中看不到的话就修改一下系统设置,让隐藏文件/文件夹可见。或者直接将ProgramData/MySQL/MySQL Server 5.6目录复制下来直接粘贴到文件夹的目录窗口中也可以。
第二步
打开配置文件
查看是否有此行内容
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY
如果有更改成
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
如果有就删掉ONLY_FULL_GROUP_BY
第三步
重启mysql
service mysqld restart 或者 systemctl start mysqld.service
查看mysql运行状态
systemctl status mysqld.service
此时已经ok了