刷新MySQL连接时报错packet for query is too large问题以及创建数据库的schema时报错Access denied for user ‘root‘@‘%‘问题解决

问题一:今天在使用datagrip数据库连接工具时,刷新Linux服务器上docker容器部署的mysql服务的连接时,出现下面错误:
packet for query is too large (5,036 > 1,024). you can change this value on the server by setting the 'max_allowed_packet' variable.
出现的原因可能是:

mysql会根据配置文件限制server接受的数据包大小。有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败,导致项目访问异常。

解决方案:
1、docker容器进入mysql:
docker exec -it XXXXX /bin/bash;
mysql -uroot -p回车输入mysql密码
2、查看max_allowed_packet最大允许包
show VARIABLES like '%max_allowed_packet%';

在这里插入图片描述

3、更改max_allowed_packet包大小
3.1、临时方案

临时修改:输入命令 set global max_allowed_packet = 210241024*10; (注意,这里的大小只能填写字节。重启mysql服务后,配置将会失效!)然后关闭掉这此mysql server链接,再进入查看。

3.2、修改my.ini文件

在[mysqld]部分加入 max_allowed_packet=XXXX
重启mysql后永久生效

以上内容原文来自参考链接: MySQL max_allowed_packet设置及问题,感谢博主🙏

问题二:在创建数据库的schema时,报错:
[42000][1044] Access denied for user 'root'@'%' to database 'XXXX'.

看报错信息是提示远程连接权限不足;

解决方案

登录进入mysql服务

这里为刚才创建的root@% 用户授予所有数据库的所有表的所有操作访问权限
grant all privileges on *.* to 'root'@'%' identified by 'xxx此处为密码xxx' with grant option;

回车执行发现报错:

​ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'root' with grant option' at line 1
研究在网上找了其他博主的解决方案,最后:
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限
flush privileges;

设置权限后一定要重启mysql或者docker容器里的mysql服务
再次创建数据库的schema,成功创建!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值