Maison > base de données > tutoriel mysql > Comment résoudre l'erreur ERREUR 1064 (42000) signalée par MySQL dans Grant

Comment résoudre l'erreur ERREUR 1064 (42000) signalée par MySQL dans Grant

PHPz
Libérer: 2023-05-28 23:53:13
avant
4042 Les gens l'ont consulté

La plupart des méthodes d'octroi trouvées sur Internet signaleront des erreurs. La raison principale est qu'après la version 8.0 de MySQL, la méthode d'origine ne peut plus être utilisée

Pour interroger la version de MySQL

SELECT version();
Copier après la connexion

Sous la version 8.0

grant all privileges on test.* to test@'%' identified by '123456';
Copier après la connexion

Les erreurs sont signalé

ERREUR 1064 (42000) : Vous avez une erreur dans votre syntaxe SQL ; vérifiez dans le manuel qui correspond à la version de votre serveur MySQL la bonne syntaxe à utiliser près de 'identifié par '123456'' à la ligne 1

Correct grant way

create user test@'localhost' identified by '123456';
Copier après la connexion
grant all privileges on test.* to test@'localhost';
Copier après la connexion
flush privileges;
Copier après la connexion

Connexion par mot de passe MySQL8.0 Pas à la hauteur

alter user test@'localhost' identified with mysql_native_password by '123456';
Copier après la connexion

Ajouté : MySQL ERROR 1064 (42000) - Grant signale toujours une erreur quoi qu'il arrive, que se passe-t-il ?

Les amis qui ont utilisé MySQL savent qu'il y a souvent des opérations d'octroi (autorisation). Je me demande si vous avez rencontré un tel problème.

ERREUR 1064 (42000) : Vous avez une erreur dans votre syntaxe SQL ; vérifiez dans le manuel qui correspond à la version de votre serveur MySQL la bonne syntaxe à utiliser près de «identifié par «123456’’

MySQL accorde SQL

Collez-le dans le terminal et exécutez-le,

une erreur sera signalée !

Après avoir tapé chaque lettre, elle est exécutée, une erreur est à nouveau signalée !
Confirmé et exécuté plusieurs fois, Une erreur est revenue à nouveau !
Je deviens fou, que dois-je faire ? Ne vous inquiétez pas, continuez à lire l'article.

Les différences entre les versions provoquent

Tout d'abord, vérifiez d'abord votre version de MySQL. La plupart des versions de MySQL qui signalent des erreurs sont 8.0. Les erreurs ne seront pas signalées en mémorisant ou même en tapant à l'aveugle des commandes. le plus 5.7. Croyez-le ou non ?

Test avec des données réelles

1. Essayez-le d'abord avec MySQL 8.0

mysql> grant all privileges on test.* to test@'%' identified by '123456';  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1
Copier après la connexion

Une erreur est signalée

2. Essayez-le à nouveau avec MySQL 5.7

mysql> grant all privileges on test.* to test@'%' identified by '123456';    
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;
Copier après la connexion

Succès.

Amis attentifs, avez-vous remarqué qu'il y a un message dans le résultat renvoyé : 1 avertissement, c'est quoi ?

mysql> show warnings;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                            |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Copier après la connexion

Il s'avère que dans MySQL 5.7, le responsable a rappelé que cette syntaxe SQL sera obsolète.

Exécution correcte de Grant

Donc, dans MySQL version 8.0 et versions ultérieures, comment exécuter correctement Grant ?

Créez d'abord un utilisateur, puis accordez l'autorisation.

mysql> create user test@'localhost' identified by '123456';
Query OK, 0 rows affected (0.10 sec)

mysql> grant all privileges on test.* to test@'localhost';
Query OK, 0 rows affected (0.17 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.18 sec)
Copier après la connexion
Il est recommandé d'utiliser cette méthode pour accorder des autorisations lors d'une utilisation future, car elle convient également à MySQL version 5.7 et la méthode officielle a abandonné la méthode de création d'utilisateur et d'octroi d'autorisations en un clic.

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal