hi,
I have built a new moodle server and i'm encoutering problem with the ldap import (new database).
My installation is as this :
- Debian 9
- Mariadb 10.2 (also tried with 10.3)
- Moodle-33
- An Active Directory server
When i tried with another SQL server (MySQL), my configuration is working well.
But if i use mariadb as sql server, i obtain this :
php /opt/moodle/admin/tool/task/cli/schedule_task.php --execute='\auth_ldap\task\sync_task'
Execute scheduled task: Tâche de synchronisation pour utilisateurs LDAP (auth_ldap\task\sync_task)
Connection au serveur LDAP...Création de la table temporaire tmp_extuser... used 5 dbqueries
... used 0.033057928085327 seconds
Scheduled task failed: Tâche de synchronisation pour utilisateurs LDAP (auth_ldap\task\sync_task),Erreur d'exécution DDL sql
Debug info:
CREATE TEMPORARY TABLE is not allowed with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
CREATE TEMPORARY TABLE mdl_tmp_extuser (
id BIGINT(10) NOT NULL auto_increment,
username VARCHAR(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
mnethostid BIGINT(10) NOT NULL,
CONSTRAINT PRIMARY KEY (id)
) DEFAULT COLLATE utf8mb4_unicode_ci ROW_FORMAT=Compressed
;
CREATE UNIQUE INDEX mdl_tmpextu_mneuse_uix ON mdl_tmp_extuser (mnethostid, username)
Backtrace:
* line 1000 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
* line 77 of /lib/ddl/database_manager.php: call to mysqli_native_moodle_database->change_database_structure()
* line 467 of /lib/ddl/database_manager.php: call to database_manager->execute_sql_arr()
* line 684 of /auth/ldap/auth.php: call to database_manager->create_temp_table()
* line 50 of /auth/ldap/classes/task/sync_task.php: call to auth_plugin_ldap->sync_users()
* line 146 of /admin/tool/task/cli/schedule_task.php: call to auth_ldap\task\sync_task->execute()
Potential coding error - existing temptables found when disposing database. Must be dropped!
PHP Fatal error: Uncaught ddl_change_structure_exception: Erreur d'exécution DDL sql in /opt/moodle/lib/dml/moodle_database.php:492
Stack trace:
#0 /opt/moodle/lib/dml/mysqli_native_moodle_database.php(1000): moodle_database->query_end(false)
#1 /opt/moodle/lib/ddl/database_manager.php(77): mysqli_native_moodle_database->change_database_structure('DROP TEMPORARY ...', Array)
#2 /opt/moodle/lib/ddl/database_manager.php(332): database_manager->execute_sql_arr(Array, Array)
#3 /opt/moodle/lib/dml/moodle_temptables.php(140): database_manager->drop_table(Object(xmldb_table))
#4 /opt/moodle/lib/dml/moodle_database.php(405): moodle_temptables->dispose()
#5 /opt/moodle/lib/dml/mysqli_native_moodle_database.php(565): moodle_database->dispose()
#6 /opt/moodle/lib/dml/moodle_database.php(160): mysqli_native_moodle_database->dispose()
#7 [internal function]: moodle_database->__destruct()
#8 {main}
thrown in /opt/moodle/lib/dml/moodle_database.php on line 492
Is someone could help me to correct this ?