MySQL报错
问题一、
is not allowed to connect to this mysql server


原因:修改帐号不允许从远程登陆。
解决:登入MySQL后,更改 "mysql" 数据库的 "user" 表的 "host"项,从"localhost"改称"%"
① mysql -u root -p 登录到mysql中
② use mysql;
③ select host from user where user='root';

④ update user set host = '%' where user ='root';
grant all privileges on *.* to 'root'@'%' identified by 'root密码';

⑤ 刷新配置:flush privileges;
问题二、
(备注:基于tp框架的报错)

原因:mysql 5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态
解决:
查看
SELECT @@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,重新设置值。
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';
如,依然存在问题,上面是改变了全局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';

浙公网安备 33010602011771号