端口占用以及yml连接数据库失败
Springboot项目启动时显示你设置的端口被占用,如何找到并杀死进程,以及使用properties文件进行配置时能够正常访问数据库,但是使用yml文件进行配置时却显示Access denied for user 'root'@'localhost' (using password: YES)
端口占用解决
启动显示端口已被占用Web server failed to start. Port 8081 was already in use.
,首先需要先检查一下你是否有自己选择使用的端口,例如,你将前端端口启动在了8081
这个时候你启动后端在8081
你就需要更改前端的端口或者时先停止掉,当然这是你已知的可能存在的占用,但是有一些软件的端口是默认的,就比如我遇到过酷狗的就是8080端口,所以如果8080启动失败将酷狗后台退出一下试试。
首先查找端口:
netstat -ano | findstr 8081 #显示该端口的进程信息,包括PID
可选查看端口占用的软件:
tasklist | findstr 114511 #替换PID,例如PID为114511
强制杀死进程:
taskkill /pid 114511 -t -f #例如PID为114511
如此,就将端口占用的程序给解决啦,在第二部中,查看端口占用的软件可以大概明白是谁在占用,比如如果是另外一个tocat那么显示的就是java.exe
,可以让心里有一个数,下次或许直接就能猜出来。
yml文件配置数据库失败
首先是感谢.yml文件_SpringBoot项目使用yml文件链接数据库异常-优快云博客提供的经验,正是因为一个个的分享才能让对于个人的困难得以解决
此处的问题首先是需要先排除掉你没有将username
写成name
,这种较为基本的错误,我最开始得配置如下,yml比较讲究缩进
spring:
datasource:
username: root
password: 000000
url: jdbc:mysql:///Personal?SSL=off
driver-class-name: com.mysql.cj.jdbc.Driver
但是后面发现一直报错Access denied for user 'root'@'localhost' (using password: YES)
显示密码错误,一直不得其解,当在properties文件中进行配置时又没有问题
spring.datasource.username=root
spring.datasource.password=000000
spring.datasource.url=jdbc:mysql:///pethome?SSL=off
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
然后看到了上面这篇经验,才发现,如果是使用yml文件配置似乎会将密码作为整型,所以如果使用这种较为特殊,全是0的,就会被当作一个0,最后的结果就是密码错误。
这似乎跟python的机制相同,所以在密码上加上双引号,使其变为字符串则可以规避此问题,下为正确的配置:
spring:
datasource:
username: root
password: "000000"
url: jdbc:mysql:///pethome?SSL=off
driver-class-name: com.mysql.cj.jdbc.Driver
然后就可以解决此问题,正常访问数据库啦。