MySQL报错解决

1、程序启动过程中MySQL报错

(1)报错内容

Caused by: com.mysql.cj.exceptions.CJException: null,  message from server: "Host '172.21.10.8' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

(2)错误分析

       首先数据库使用Navicat访问正常,但是应用访问就是不行,即使重启mysql实例也没效果。最后定位到,应该是短时间内产生了大量中断的数据库连接导致,而且失败的连接数量超过了mysql的max_connection_errors的最大值。

(3)解决方法

a、登录mysql,使用 flush hosts来命令清理hosts文件

flush hosts;

b、调整mysql的最大连接数和最大错误连接数的大小

查看mysql最大错误连接数
 
show variables like '%max_connect_errors%'
 
查看mysql最大连接数:
 
show variables like 'max_connections';
 
修改连接数大小:
 
set global max_connections = 1000;
set global max_connect_errors = 1000;

2、迁移MySQL数据目录启动报错

(1)报错内容

SELinux is preventing /usr/sbin/mysqld from write access on the directory data. For complete SELinux messages run: sealert -l 0870e79d-b258-4169-9bfa-da89 10月 25 20:16:42 bogon python[17908]: SELinux is preventing /usr/sbin/mysqld from write access on 

(2)错误分析

SELinux(Security-Enhanced Linux)是一种基于策略的访问控制机制,它会监控系统中的每一个操作,并决定是否允许这个操作的执行。报错信息表明SELinux阻止了/usr/sbin/mysqld(即MySQL服务进程)对目录da的写入访问。

(3)解决方法

a、临时关闭SELinux

执行以下命令可以临时将SELinux置于宽容模式(Permissive mode),允许操作但不强制执行策略,从而可以进行调试。

sudo setenforce 0

调试完成后,可以通过以下命令重新启用SELinux:

sudo setenforce 1

b、永久关闭SELinux

1)编辑 /etc/selinux/config 文件

sudo nano /etc/selinux/config

2)将 SELINUX 设置为 disabled

 在文件中找到以下行:

SELINUX=enforcing

将其修改为(如果它不存在,则添加这行):

SELINUX=disabled

3)保存并关闭文件

按下Esc,然后输入下面命令保存

:wq

4)重启服务器,使修改生效

sudo reboot

3、迁移MySQL数据目录之后要给新的目录授权

授权示例命令如下:

chown mysql:mysql /usr/local/mysql/mysql
chmod -R 777 /usr/local/mysql/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wd520521

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值