Resolving the error "The user specified as a definer ('contrast'@'%') does not exist"

  • Updated

Issue

In the TeamServer contrast.log file, errors like the below are observed:

250918 01.05.00,061 {} {} {} ERROR (URLEntryJpaDAO.java:58) Could not purge URL entries
java.sql.SQLException: The user specified as a definer ('contrast'@'%') does not exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) ~[mysql-connector-java-5.1.44.jar:?]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) ~[mysql-connector-java-5.1.44.jar:?]
...

Cause

Stored procedures in the database were created (or restored) from another database where they were defined by the MySQL user 'contrast', but that user does not exist in the current MySQL database, meaning the stored procedure cannot be executed.

Resolution

Update the database to set the 'definer' attribute of the stored procedures to a valid, existing user in the database.

To do this, use the following query to list available users:

SELECT CONCAT(USER, '@', HOST) AS users FROM mysql.user;

Select a valid user who will have permission on the Contrast TeamServer database, and then execute the following query to update the existing stored procedures:

UPDATE mysql.proc SET DEFINER = 'YOUR_USER_HERE' WHERE DEFINER='contrast@%';

The user in the above query should be defined as USER@SERVER like contrast@localhost or contrast@% depending on how that user is configured in the database.

 

 

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request