Sto leggendo O “Relly “Imparare MySQL” e dice che puoi creare un utente in MySQL facendo proprio questo:
mysql> GRANT ALL ON *.* TO "jill"@"%.invyhome.com" IDENTIFIED BY "the_password"; Query OK, 0 rows affected (0.01 sec)
Ma se provo a farlo:
-> grant select on testgrounds.personas to ""@"localhost"; --> Error Code: 1133. Can"t find any matching row in the user table
Ma se uso una password funziona:
->grant select on testgrounds.personas to ""@"localhost" identified by "pass"; --> 0 row(s) affected
Ho dovuto ripristinare i privilegi per utente root perché stavo sperimentando e li ho incasinati, quindi penso che prima di farlo avrei potuto effettivamente usare listruzione nel libro (non ricordo il 100%)
-> select current_user; --> "root@localhost" -> show grants; --> "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"localhost\" IDENTIFIED BY PASSWORD \"*4ACFE3202A5FF5CF467898FC58AAB1D615029441\" WITH GRANT OPTION" --> "GRANT ALL PRIVILEGES ON `testgrounds`.* TO \"root\"@\"localhost\" WITH GRANT OPTION" --> "GRANT PROXY ON \"\"@\"\" TO \"root\"@\"localhost\" WITH GRANT OPTION"
Cè qualcosa di sbagliato nella mia installazione o configurazione di MySQL?
Risposta
Questo non è un problema con MySQL installazione o configurazione.
Ogni nome account è composto sia da un nome utente che da un nome host come “nome_utente” @ “nome_host”, anche se il nome host non è specificato. Dal MySQL Reference Manual:
I nomi degli account MySQL sono costituiti da un nome utente e un nome host. Ciò consente la creazione di account per utenti con lo stesso nome che possono connettersi da host diversi.
Ciò consente anche a MySQL di concedere diversi livelli di autorizzazioni a seconda di quale host che usano per connettersi.
Quando si aggiornano le concessioni per un account in cui MySQL non riconosce la parte host, restituirà un codice di errore 1133 a meno che non abbia una password per identificare questo account.
Inoltre, MySQL consentirà di specificare il nome di un account solo tramite il suo nome utente, ma in questo caso viene trattato come “nome_utente” @ “%”.