Reggie外卖踩坑Day1
数据库连接
出现下面报错,当要在数据库中进行查询时一直查不到
2024-03-10 21:51:09.746 ERROR 24336 --- [reate-520043771] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.22.jar:8.0.22]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1652) ~[druid-1.2.5.jar:1.2.5]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1718) ~[druid-1.2.5.jar:1.2.5]
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2792) ~[druid-1.2.5.jar:1.2.5]
尝试debug:
- 增加root权限发现已经有权限
- 更改时区×
- 更改pom.xml中数据库依赖的版本×
- 回去查备忘录看密码,发现是密码错了…我是傻逼
配置数据库代码(application.yml)解读
- server:
port: 8080: 这里配置了服务器的端口号为8080,应用将在该端口监听请求。 - application.name: reggie: 这里指定了Spring Boot应用程序的名称为"reggie"。
- datasource:
druid: 这个部分配置了数据源,使用的是Druid连接池。
driver-class-name: 指定了MySQL数据库的驱动类。
url: 数据库连接的URL,指向了本地MySQL服务器,数据库名为"reggie",同时设置了一系列连接参数。
username: 数据库的用户名。
password: 数据库的密码。
mybatis-plus: - configuration: 这是MyBatis Plus的配置项。
map-underscore-to-camel-case: true: 这个配置项告诉MyBatis Plus在映射实体或属性时,将数据库中的下划线命名转换为驼峰命名法。
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl: 这个配置项告诉MyBatis Plus使用stdout作为日志输出的实现。
global-config: 全局配置项。
db-config: 数据库配置。
id-type: ASSIGN_ID: 这个配置指定了全局的ID生成策略为手动指定ID。
server:
port: 8080
spring:
application:
name: reggie
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: '我的密码'
mybatis-plus:
configuration:
#在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: ASSIGN_ID
前端页面操作后无法跳转后端代码
因为直接从本地打开的页面当然没法跳转啊kuso。。。根本没连后端服务器,正确的域名是:http://localhost:8080/backend/page/login/login.html
但是为什么不像Django可以在终端生成域名跳转捏