MySQL: Ce înseamnă % în coloana host și cum se schimbă parola utilizatorului? (Programare, Mysql)

Kifsif a intrebat.

Ei bine, asta este ceea ce pot vedea:

select host, user from mysql.user;

+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | me               |
| 127.0.0.1 | root             |
| ::1       | root             |
| localhost |                  |
| localhost | debian-sys-maint |
| localhost | root             |
| ubuntu    |                  |
| ubuntu    | root             |
+-----------+------------------+

Am intrat ca root și aș vrea să schimb parola pentru utilizatorul ‘eu’.

SET PASSWORD FOR 'me'@'%' = PASSWORD('letmein');
Query OK, 0 rows affected (0.00 sec)

Ei bine, nu sunt afectate rânduri după cum se poate vedea.

Cât despre încercarea de accesare, rezultatul este următorul:

Access denied for user 'me'@'localhost' (using password: YES)
[email protected]:/var/www/cgi-bin$ 

Deci, se menționează localhost, nu %.

Puteți să-mi sugerați cum să schimb parola pentru ‘me’ și să-mi explicați ce este %?

2 răspunsuri
Omesh

Trebuie să setați parola pentru localhost:

SET PASSWORD FOR 'me'@'localhost' = PASSWORD('letmein');

FLUSH PRIVILEGES;

% înseamnă că gazdele de la distanță se pot conecta la serverul MySQL de pe orice alt server, în timp ce localhost înseamnă că vă puteți conecta la serverul MySQL doar de pe aceeași mașină.

Comentarii

  • mysql> SET PASSWORD FOR ‘me’@’localhost’ = PASSWORD(‘letmein’); ERROR 1133 (42000): Nu se poate găsi niciun rând corespunzător în tabelul user –  > Por Kifsif.
  • dacă doriți să accesați de pe calculatorul local, atunci trebuie să creați un utilizator 'me'@'localhost' sau să utilizați -h 'server_ip' în comanda de conectare –  > Por Omesh.
  • Me există deja. CREATE USER ‘me’@’localhost’ IDENTIFIED BY ‘letmein’; ERROR 1396 (HY000): Operațiunea CREATE USER a eșuat pentru ‘me’@’localhost’ În ceea ce privește autentificarea, mi-am uitat parola. –  > Por Kifsif.
  • Poate că ar trebui să îl omor pe ‘me’? –  > Por Kifsif.
  • Ei bine, ciudat. A scris că 0 rânduri afectate. Dar când am afișat toți utilizatorii, nu am văzut ‘eu’, ci ‘eu însumi’. Vă mulțumesc. –  > Por Kifsif.
Habibillah

‘%’ înseamnă că vă puteți conecta la baza de date de la orice gazdă conectată la acele baze de date. De asemenea, definiți gazda locală ca gazdă dacă doriți să accesați baza de date de la gazda locală.

pentru a vă schimba parola:

SET PASSWORD FOR 'me'@'%' = PASSWORD('letmein');

și nu uitați să executați:

FLUSH PRIVILEGES;

pentru a confirma modificarea. Vă rugăm să vă uitați la Managementul conturilor MySql.

UPDATE:

Deoarece în tabelul dvs. de utilizatori nu am găsit numele de utilizator cu host = localhost trebuie să creați acest utilizator mai întâi prin (aici pentru a adăugați un utilizator):

Grant all privileges on *.* to [email protected]'localhost' identified by 'letmein';
flush privileges;

Comentarii

  • mysql> SET PASSWORD FOR ‘me’@’%’ = PASSWORD(‘letmein’); Query OK, 0 rânduri afectate (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rânduri afectate (0.09 sec) mysql> quit Bye Bye [email protected]:/var/www/cgi-bin$ mysql -u me -p Enter password: ERROR 1045 (28000): Acces refuzat pentru utilizatorul ‘me’@’localhost’ (folosind parola: YES) –  > Por Kifsif.
  • Ei bine, nu funcționează. 0 rânduri afectate de ambele ori. Și, bineînțeles, acces refuzat. –  > Por Kifsif.
  • Nu, nu funcționează. SET PASSWORD FOR ‘me’@’localhost’ = PASSWORD(‘letmein’); Interogare OK, 0 rânduri afectate (0.03 sec) Poate pentru că s-a întâmplat să uit parola pentru mine. Deci este o buclă: nu poți schimba gazda pentru că nu-ți amintești parola și nu poți schimba parola pentru că nu poți accesa gazda. –  > Por Kifsif.
  • verificați formatul parolei, poate că baza de date folosește MD5 pentru hash-ul unei parole. Dacă baza de date utilizează MD5 pentru hash parola, trebuie să o schimbați: SET PASSWORD FOR ‘me’@’localhost’ = MD5(‘letmein’); –  > Por Habibillah.
  • SET PASSWORD FOR ‘me’@’localhost’ = MD5(‘letmein’); ERROR 1064 (42000): Aveți o eroare în sintaxa SQL; verificați manualul care corespunde versiunii serverului MySQL pentru a afla sintaxa corectă de utilizat în apropierea lui ‘MD5(‘letmein’)’ la linia 1 Cum să verificați dacă este MD5 sau nu? –  > Por Kifsif.

Tags: