MySQL'de root olarak bile sildiğim basit bir kullanıcıyı yeniden oluşturamıyorum.
Benim durumum: 'jack' kullanıcısı daha önce vardı, ancak onu yeniden oluşturmak için mysql.user'dan sildim. O tabloda bunun kalıntılarını göremiyorum. Bu komutu başka, rastgele bir kullanıcı adı için çalıştırırsam, örneğin 'jimmy', sorunsuz çalışıyor (tıpkı başlangıçta 'jack' için yaptığı gibi).
jack' kullanıcısını bozmak için ne yaptım ve MySQL'in bu yüklemesi için geçerli bir kullanıcı olarak 'jack''ı yeniden oluşturmak için bu bozulmayı nasıl geri alabilirim?
Aşağıdaki örneğe bakınız. (Tabii ki, başlangıçta, 'jack''in yaratılması ile kaldırılması arasında çok zaman vardı).
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)
Bir ÖNCELİKLERİ SIFIRLA
yapmayı deneyin. Bu hata koduyla ilgili bu MySQL hata gönderisi, sizinkine benzer bir durumda privs'leri temizledikten sonra bazı başarılar bildiriyor gibi görünüyor.
Kullanıcıları bu şekilde manuel olarak silmemelisiniz. MySQL ayrıcalıkları kaldırmak için REVOKE
ve silmek için DROP USER
sözdizimine sahiptir:
REVOKE priv1,priv2,priv3,etc... FROM 'jack@localhost'; // remove certain privileges
DROP USER 'jack@localhost'; // completely delete the account
En iyisi arka planda uğraşmak yerine sağlanan araçları kullanmaktır.