es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

mysql – C# arroja una excepción de usuario no existente en una transacción.

Estoy ejecutando una transacción de MySQL en C# y obtengo un error al ejecutar la segunda consulta. Me aparece una excepción en la siguiente línea:

int no = sql_loc.ExecuteNonQuery();
db_local = "SERVIDOR=localhost; Base de datos=sync_r; UID=kandy; Contraseña=kandy500; permitir variables de usuario=true";

MySqlConnection con_local = new MySqlConnection(db_local);
con_local.Open();

delq = "eliminar de tbl_recipes";  // todos los registros
query = "insertar en tbl_recipes(cat_id) valores(6)";

MySqlTransaction tran = con_local.BeginTransaction();
MySqlCommand sql_loc = con_local.CreateCommand();
sql_loc.Transaction = tran;

sql_loc.CommandText = delq;
sql_loc.ExecuteNonQuery();
sql_loc.CommandText = query;
int no = sql_loc.ExecuteNonQuery();
if (no == 1)
    sql_loc.Transaction.Commit();
else
    sql_loc.Transaction.Rollback();

El error que se muestra es el siguiente:

{"El usuario especificado como definer ('root'@'%') no existe"}

Pero este no es el usuario que he especificado. ¿Cómo puedo solucionar esto? ¿Dónde puede estar el problema real?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con el definidor especificado en la consulta, que está configurado como ‘root’@’%’. Es posible que este usuario no exista en tu base de datos de MySQL, lo cual está causando el problema.

    Para solucionar esto, debes revisar la consulta que está causando el error y verificar el definidor especificado. Puedes cambiar el definidor por un usuario válido con permisos apropiados en tu base de datos, o eliminar por completo el definidor si no es necesario.

    Alternativamente, también puedes verificar si hay algún disparador (trigger) o procedimiento almacenado involucrado en la transacción, lo cual podría estar causando el error debido a un definidor inválido. En estos casos, es posible que necesites modificar los disparadores o procedimientos para utilizar el definidor correcto o eliminarlo por completo.

    En resumen, parece que el problema está relacionado con un definidor de usuario en la transacción de MySQL, y puedes resolverlo revisando la consulta y los disparadores/procedimientos asociados.

Comments are closed.