我尝试在我的项目中包含一个MySQL-DB。
我已经安装了MySQL程序,创建了一个DB(架构)并为访问验证设置了密码和用户名。
包含pom-file依赖项等。
现在我被我的application.properties:
困住了spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/asndb
spring.datasource.username=root
spring.datasource.password=asnTeam1
spring.jpa.hibernate.ddl-auto=create
在MySQL管理器中,我可以看到模型中的所有属性,因此连接应该可以正常工作,对吧?
我错了什么?我需要MySQL客户端吗?
更新更改了application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/asndb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=asnTeam1
spring.jpa.hibernate.ddl-auto=create
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.jpa.show-sql = true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.datasource.platform=mysql
spring.datasource.schema=schema-mysql.sql
spring.datasource.data=data-mysql.sql
spring.datasource.initialize=true
spring.datasource.continue-on-error=true
现在我想用MySQL客户端打开我的data.sql文件。但是我的sql语法中有错误。在插入声明之后:
INSERT INTO USER (FIRST_NAME, LAST_NAME, USERNAME, PASSWORD, USER_ROLE) VALUES('Admin', 'Istrator', 'admin', '$2a$10$W9xQIwa/FstPUvcbzJXnQ.XjVdTyIcCEp.g6VCq1gYuSsQNjJjbJG', 'ADMIN')
INSERT INTO USER (FIRST_NAME, LAST_NAME, USERNAME, PASSWORD, USER_ROLE) VALUES('Bernd', 'Menia', 'bernd', '$2a$10$6dQcayeT/JAFvgFvzIjlcew5z9cmdCrGlv57.BGnIKvPXTDsQm7hG', 'PARENT')
INSERT INTO PARENT (FAMILY_STATUS, LOCATION, POSTCODE, STREET_NAME, IMG_NAME, STATUS, ID) VALUES ('MARRIED', 'Innsbruck', '6020', 'Bahnhofstraße', 'john.jpg',TRUE, SELECT ID FROM USER WHERE USERNAME = 'bernd')
我错了什么?
SOLUTION:
从上面插入较大的application.properties,并在第一次spring-boot后插入ddl-auto=true
和initialize=true
的持久数据库注释。
User
是MySQL中的保留关键字,因此不允许使用。
用spring-app中的data.sql文件填充mySQL数据库是不可能的,所以我通过MySQL-Workbench打开文件并执行语句。
答案 0 :(得分:3)
遇到了这个post的类似问题。希望这会有所帮助。
而不是
spring.datasource.url=jdbc:mysql://localhost:3306/asndb
试试这个:
spring.datasource.url=jdbc:mysql://localhost:3306/asndb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
答案 1 :(得分:1)
要在数据库表中插入数据,请确保已打开数据库,因此在MySQL客户端中,请从以下位置开始:
grep -r '#!/' *
并检查您的表:mysql>use asndb;
和user
是否真的存在:
parent
之后您可以插入数据:
mysql>show tables;
INSERT INTO asndb.USER(.....);
您无法使用