मुझे लगता है कि मेरे द्वारा हटाए गए एक साधारण उपयोगकर्ता को MySQL में रूट के रूप में फिर से बनाने में असमर्थ होना चाहिए।
मेरा मामला: उपयोगकर्ता 'जैक' पहले मौजूद था, लेकिन मैंने इसे फिर से बनाने के लिए इसे mysql.user से हटा दिया। मुझे उस तालिका में इसका कोई उल्लेख नहीं है। अगर मैं इस कमांड को कुछ अन्य, रैंडम यूजरनेम के लिए निष्पादित करता हूं, तो 'जिमी' कहो, यह ठीक काम करता है (जैसा कि यह मूल रूप से 'जैक' के लिए किया था)।
मैंने उपयोगकर्ता 'जैक' को भ्रष्ट करने के लिए क्या किया है और मैं MySQL की स्थापना के लिए वैध उपयोगकर्ता के रूप में 'जैक' को फिर से बनाने के लिए उस भ्रष्टाचार को कैसे पूर्ववत कर सकता हूं?
नीचे उदाहरण देखें। (बेशक, मूल रूप से, 'जैक' के निर्माण और उसके निष्कासन के बीच बहुत समय था।)
mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| jack | localhost |
| root | localhost |
| root | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)
mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)
mysql> select user,host from user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | russ-elite-book |
+------------------+-----------------+
4 rows in set (0.00 sec)
mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost'
mysql> CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | 127.0.0.1 |
| debian-sys-maint | localhost |
| jimmy | localhost |
| root | localhost |
| root | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)