Packet for query is too large
错误原因
一般是没有修改Mysql允许传输的最大数据包大小,使用
SHOW VARIABLES LIKE '%max_allowed_packet%';
可以看到默认的大小,一般默认为1M。
处理方法
- 暂时修改:重启mysql后失效
--修改为10M
set global max_allowed_packet = 1024*1024*10;
- 永久修改:在mysql安装目录中找到my.ini配置文件,在最后添加 max_allowed_packet=10485760
数据库连接
public key retrieval is not allowed
报错
public key retrieval is not allowed。
解决方法
连接后面添加:allowPublicKeyRetrieval=true
连接被锁住
错误现象
某个ip连接太多被锁住了,换一个ip(wifi改为热点)连接数据库。
# 查看最大错误连接数限制
show global variables like 'max_connect_errors';
# 查看连接IP
select * from performance_schema.host_cache
# 刷新数据库IP缓存
flush hosts
# 查看连接
SELECT
substring_index(host, ':',1) AS host_name,
state, count(*)
FROM information_schema.processlist
GROUP BY state, host_name;
Host is not allowed to connect to this MySQL server
错误详情
通过navicate远程登录提示这个错误,但是本地使用命令行可以登录。
错误原因
默认的 root 用户只能当前节点localhost访问,是无法远程访问的。如果没有修改默认配置就使用root用户远程登录就会报这个错误。
解决方法
- 在装有MySQL的机器上登录MySQL
mysql -u root -p密码
- 执行sql
use mysql;
select host from user where user = ‘root’;
结果表示是当前的root用户限制在localhost访问的,需要修改他的访问域。
- 修改root用户的访问域
update user set host = ‘%’ where user = ‘root’;
- 执行FLUSH PRIVILEGES 或者重启 MySQL 即可