数据库模式修改 sql-mode问题现象很多小伙伴在本地部署后访问站点会报下图这种错误数据获取失败:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column nc_saas.SysUserRole.id which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by问题原因这是因为在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式对数据进行严格校验。我们需要修改数据库配置解决方案一、本地部署数据库修改1. 打开配置文件打开本地部署软件phpstudy侧边栏选择设置点击文件位置选择MySQL2. 编辑 my.ini 文件弹出的文件夹中双击打开my.ini文件3. 修改 sql_mode找到sql_mode注意有点显示的是sql_mode,有点显示的是sql-mode两者都可以将sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES改为sql_mode 4. 重启 MySQL修改完成后重启mysql二、宝塔部署数据库修改1. 选择 MySQL 软件在宝塔侧边栏选择软件商店搜索mysql选中相应的数据库点击设置注意要修改哪个站点的数据库就选择该站点的数据库版本号2. 搜索 sql-mode点击配置修改按住CtrlF键搜索sql-mode注意有点显示的是sql_mode,有点显示的是sql-mode两者都可以3. 修改配置将sql-modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_VALUE_ON_ZERO改为sql-mode 4. 保存配置修改后点击保存5. 重启 MySQL