具体报错如下:

解决思路:

当时看到数据库报错Communications link failure我就想到应该是数据库连接不上的问题,具体想了以下几种情况

1.数据库未连接

        1.1过期了,mysql里有一个wait_timeout的值需要大于数据库连接池的最大超时时间,否则数据库把连接关了而连接池还没关则造成连接不可使用

        1.2没开启

2.数据库配置信息错误

3.网络问题

我先检查了配置文件看看数据库配置有没有问题,没有大致的问题。

当我看到有主从数据源的时候,我就想起来应该是没启动数据库,因为当时做的是两台虚拟机上作为的主从库,而当时并没有开启虚拟机,因此我就去开启虚拟机。然后就解决了问题.......

再讲讲后面遇到的问题:

1.数据库登陆

按住win+R 输入cmd 回车打开dos窗口,输入下列代码,进入数据库

mysql -u<账号> -p回车

<密码>

2.数据库密码忘记

当输入错误的密码,或者命令输错了(我当时就是在-p后面输入密码)而导致的报错

Access denied for user 'root'@'localhost' (using password: YES) 

如果最终忘记了密码可以找到my.ini文件输入,跳过密码登陆

skip-grant-tables

3.windows下寻找my.ini文件 linux下找my.conf文件

3.1windows下

路径一般是在C盘的ProgramData的隐藏文件下

C:\ProgramData\MySQL\MySQL Server 8.0

 

 

 

 如果没看到文件,可能是没开启隐藏文件

 

3.2linux下

找到my.cnf文件,下载到本地,用记事本打开,接下来就是下面的步骤

 4.my.ini输入配置

在[mysqld]下一行添加skip-grant-tables,登陆就不会使用密码了

skip-grant-tables

添加完后重启再登陆 、

5.更改参数

因为当数据库重启或数据库空闲连接超过设置的最大timemout时间,数据库会断开已有的链接。因此也会导致数据库报Communications link failure的错误

继续在my.ini文件下找到这两行

wait_timeout=31536000

interactive_timeout=31536000

然后参数都改成31536000,保存退出重启即可 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐