Tengo una aplicación de arranque de primavera que se conecta a una base de datos MySQL y he podido trabajar con las tablas, pero ahora creé un modelo, repositorio y servicio para acceder a una vista. Creé una ruta en un controlador para trabajar con esta vista y aparece el siguiente mensaje de error:

java.sql.SQLException: The user specified as a definer ('root'@'%') does not exist

En el banco de trabajo MySQL, cuando miro la vista, se ve así:

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`%` 
    SQL SECURITY DEFINER
VIEW `db`.`my_view` AS
    ...

En application.properties:

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${HOSTNAME:localhost}:${PORT:3306}/${DB_NAME:db}?serverTimezone=UTC
spring.datasource.username=${USERNAME:root}
spring.datasource.password=${PASSWORD:password}
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

¿Necesito cambiar el definidor en la base de datos? He iniciado sesión como el mismo usuario que cuando lo creé. Por favor, avíseme si necesito agregar alguna información y cualquier ayuda es muy apreciada.

0
Alfie Danger 22 ene. 2021 a las 13:50

1 respuesta

La mejor respuesta

La forma más sencilla de corregir su error es eliminar cualquier declaración DEFINER del script SQL.

1
Eugene Lesnov 22 ene. 2021 a las 17:50