Error al actualizar el correo de los usuarios

Re: Error al actualizar el correo de los usuarios

de Fredy Hurtado -
Número de respuestas: 1
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