具体报错如下:
解决思路:
当时看到数据库报错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,保存退出重启即可