Error al actualizar el correo de los usuarios

Error al actualizar el correo de los usuarios

de Fredy Hurtado -
Número de respuestas: 3

Buenos días a todos,

Tengo instalado Moodle 3.11.1, MsQL 5.7.34 y Debian 10 y tengo un inconveniente y es que cuando voy a actualizar el correo de algún usuario me arroja este error.

El Moodle trabaja bien sin ningún inconveniente, salvo lo que comento.

Promedio de valoraciones: -
En respuesta a Fredy Hurtado

Re: Error al actualizar el correo de los usuarios

de Fernando Navarro Páez -
Hola Fredy.

¿Puedes activar la depuración, repetir el proceso y compartir el mensaje de error? Una vez que lo tengas puedes volver a desactivar la depuración.

Salu2
Fernando
En respuesta a Fernando Navarro Páez

Re: Error al actualizar el correo de los usuarios

de Fredy Hurtado -
Hola Fernando,
Este es el mensaje de error que muestra al activar la depuración.

Información de depuración: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8'
SELECT 'x' FROM mdl_user WHERE LOWER(email) COLLATE utf8mb4_bin = LOWER(?) AND mnethostid = ? AND id <> ? LIMIT 0, 1
[array (
0 => 'fredyh0823@gmail.com',
1 => '1',
2 => 801,
)]
Error code: dmlreadexception
Trazado de la pila (stack):

line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
line 1212 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 2002 of /lib/dml/moodle_database.php: call to mysqli_native_moodle_database->get_recordset_sql()
line 1987 of /lib/dml/moodle_database.php: call to moodle_database->record_exists_sql()
line 310 of /user/editadvanced_form.php: call to moodle_database->record_exists_select()
line 653 of /lib/formslib.php: call to user_editadvanced_form->validation()
line 589 of /lib/formslib.php: call to moodleform->validate_defined_fields()
line 699 of /lib/formslib.php: call to moodleform->is_validated()
line 171 of /user/editadvanced.php: call to moodleform->get_data()
En respuesta a Fredy Hurtado

Re: Error al actualizar el correo de los usuarios

de Fernando Navarro Páez -

Hola Fredy.

La parte relevante es "COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8'"

Para resolver el problema tienes que hacer lo siguiente:

# Hacer una copia de seguridad de la base de datos.

# Modificar el archivo config.php:

$CFG->dboptions = array (

  'dbpersist' => 0,

  'dbport' => '',

  'dbsocket' => '',

  'dbcollation' => 'utf8mb4_general_ci',

);

# Listar las tablas que no están en utf8mb4_general_ci (Opcional)

php admin/cli/mysql_collation.php -l | grep -v utf8mb4_general_ci

# Cambiar la codificación a utf8mb4_general_ci

php admin/cli/mysql_collation.php --collation=utf8mb4_general_ci


Ya nos cuentas.

Salu2

Fernando