logo  
 
Translation :
 
   
 
Menu général :
 
   
 
Espace Membre :
 
 
Privé Se connecter


Se souvenir de moi ?


Mot de passe oublié

 
 
Liens Web :
 
   
 
Forum : Masquer l’entête
 
 
Accès rapide :

Effectuer une Recherche avancée OU


 
 
[Annonce] Champ 'version' MariaDB 10.3  [2 réponses]
 
 


 
 
 
 
 
 
 
 
 
CCRI
starsj4.png
Posteur fou


avatar
Hors ligne

Nombre de posts: 206
Inscrit(e) le: 04 février 2016
Imprimer jeudi 18 juillet 2019 à 01:10  

Bonsoir Sylvain,

Nous venons de migrer notre serveur qui héberge VT (Debian 9 -> Debian 10).
Le serveur de base de données passe de Mariadb 10.1 à MariaDB 10.3.

Lorsque l'on se connecte à VT, on obtient, un message "MySQL error code 1406: Data too long for column 'version' at row 1"
Visiblement, VT stocke la version du client, et la longueur du champ 'version' de la table utilisateurs ne lui convient plus.

Dans cette table (utilisateurs), le champ 'version' était un varchar de 10.
Je l'ai passé à 20 et j'ai pu me connecter.
Lorsque je regarde la valeur du champ 'version' pour mon utilisateur, j'ai ceci "2019-07-08 -- ???"

Je vais essayer de trouver d'ou cela peut venir de mon côté.
J'espère juste qu'il n'y aura pas d'autres effets de bords.

Si jamais tu a besoin d'une copie de notre base, n'hésite pas.

Bonne soirée.


Olivier et Benoît
IUT Orsay



 
 
 
 
 
 
CCRI
starsj4.png
Posteur fou


avatar
Hors ligne

Nombre de posts: 206
Inscrit(e) le: 04 février 2016
Imprimer Permalien jeudi 18 juillet 2019 à 02:15  

Rebonsoir Sylvain,

Lorsque l'on quitte VT, on obtient "MySQL Error Code: (1364) Field 'adresseMAC' doesn't have a default value".

Le champ a portant comme valeur par défaut ''.

Je continue de chercher de mon côté.

Bonne soirée.




Après quelques tests, le champ 'adresseMAC' a bien une valeur par défaut : '', mais elle n'est pas mise par défaut sur les comptes des utilisateurs.
Si sur mon compte j'édite le champ 'adresseMAC' et que j'y insère '', alors, je ne peux pas me connecter.
J'obtiens : Vous n'êtes pas autorisé à travailler avec VT sur cette machine (adresse MAC Incorrecte)


Rebonsoir Sylvain,

Je ne peux pas garantir que ce soit la solution, mais le problème semble lié au 'STRICTS MODES', qui sont activés par défaut depuis MySQL 5.6 et à priori MariaDB 10.3.

Temporairement, j'ai donc ajouté dans le fichier /etc/mysql/mariadb.conf.d/50-server.cnf


[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER


Après avoir redémarré le serveur de base de données, il n'y a plus de problème.

Voici une explication que j'ai trouvé sur le sujet :


Citation :

MySQL’s, and MariaDB’s, strict mode controls how invalid or missing values in data changing queries are handled; this includes INSERT, UPDATE, and CREATE TABLE statements. With MySQL strict mode enabled, which is the default state, invalid or missing data may cause warnings or errors when attempting to process the query.

When strict mode is disabled the same query would have its invalid, or missing, values adjusted and would produce a simple warning. This may seem like the preferred result, however with strict mode disabled certain actions may cause unexpected results; for instance, when the value being inserted exceeds the maximum character limit it will be truncated to fit the limit.


Olivier et Benoît
IUT Orsay



 
 
 
 
 
 
Ψsylvain
Administrateur
stars7.png
Dieu Supreme


avatar
Hors ligne

Nombre de posts: 2122
Inscrit(e) le: 20 novembre 2004
Imprimer Permalien jeudi 18 juillet 2019 à 09:45  

Bonjour,

Merci pour ces retours qui serviront, j'en suis certain, à d'autres utilisateurs.
J'avais déjà eu de mauvaises surprises avec les mises à jour de mySQL, Notamment avec les dates.
Auparavant j'utilisais la date 0000-00-00 comme date par défaut ce qui me permettait de repérer immédiatement les endroits où il ya avait pu avoir des pbs d'enregistrement.
Cette date n'est plus autorisée par mySQL.

Concernant l'adresse MAC c'est la même chose. Par défaut l'adresse MAC des utilisateurs est vide (et non-pas NULL). Une adresse MAC vide signifie que l'utilisateur peut utiliser VT sur toutes les machines.
Je ne comprend pas pourquoi la chaine de longueur 0 n'est pas acceptée (ce qui est différent de NULL). Ceci signifie que toutes les chaines sont de longueur supérieure à 0.
C'est très bizarre ...

D'autre part, il me semble que la chaine vide est la valeur par défaut du champ adresseMAC de la table utilisateurs.
Selon moi, si on ajoute une valeur dans la table utilisateurs en omettant d'indiquer la valeur du champ adresseMAC, c'est à mySQL de compléter.
S'il ne le fait pas, à quoi sert il d'indiquer une valeur par défaut ???

Sylvain




Au sujet du champ version, ne cherche pas, c'est VT qui est fautif (en partie).
Je n'ai toujours pas réussi à déterminer la date de compilation d'un executable.
Le champ version devrait contenir cette info.


visual timetabler


E-mail Anti-spam


 
 
 
 
[Annonce] Champ 'version' MariaDB 10.3  [2 réponses]