Erreur MySQL 1356 : références de table non valides dans la requête de mise à jour
Tenter de mettre à jour les autorisations utilisateur à l'aide de la commande UPDATE peut entraîner l'erreur :
ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
Copier après la connexion
Comprendre l'erreur
Dans MariaDB 10.4 et supérieur, mysql.user est une vue, pas une table. Par conséquent, l'exécution de mises à jour directes sur cette vue n'est plus prise en charge.
Solution
Pour résoudre cette erreur, utilisez les pratiques recommandées suivantes :
-
Utilisez SET PASSWORD ou ALTER USER pour les modifications d'authentification :
Gérez l'authentification des utilisateurs à l'aide de SET PASSWORD ou ALTER USER commandes.
-
Évitez de manipuler les utilisateurs existants :
La modification des composants utilisateur/hôte des noms d'utilisateur existants peut entraîner des incohérences. Au lieu de cela, supprimez et recréez les utilisateurs si nécessaire.
Exemple
Pour accorder l'accès à distance à l'utilisateur root dans MariaDB 10.4, utilisez la commande suivante :
ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';
Copier après la connexion
Précautions
- Référez-vous toujours à la documentation officielle pour obtenir les informations les plus récentes sur MySQL et Mécanismes d'authentification MariaDB.
- La copie de commandes à partir de sources obsolètes peut entraîner des erreurs et des comportements inattendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!