O “Relly-t olvasok “A MySQL megtanulása”, és azt mondja, hogy a következő módon hozhat létre felhasználót a MySQL-ben:
mysql> GRANT ALL ON *.* TO "jill"@"%.invyhome.com" IDENTIFIED BY "the_password"; Query OK, 0 rows affected (0.01 sec)
De ha megpróbálom:
-> grant select on testgrounds.personas to ""@"localhost"; --> Error Code: 1133. Can"t find any matching row in the user table
De sikeres, ha jelszót használok:
->grant select on testgrounds.personas to ""@"localhost" identified by "pass"; --> 0 row(s) affected
Vissza kellett állítanom a felhasználói gyökér, mert kísérleteztem és elrontottam őket, ezért úgy gondolom, hogy mielőtt ezt megtenném, valóban felhasználhatnám a könyvben szereplő állítást (100% -ra nem emlékszem)
-> 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"
Valami baj van a MySQL telepítésemmel vagy beállításommal?
Válasz
Ez nem a MySQL problémája telepítés vagy beállítás.
Mindegyik fiók neve tartalmaz egy felhasználót és egy gazdagép nevet is, például “user_name” @ “host_name”, még akkor is, ha a host neve nincs megadva. A MySQL kézikönyv:
A MySQL-fiókok nevei felhasználónévből és hosztnévből állnak. Ez lehetővé teszi az azonos nevű felhasználók számára a fiókok létrehozását, akik különböző gazdagépekről tudnak csatlakozni.
Ez lehetővé teszi a MySQL számára, hogy különböző szintű engedélyeket adjon meg attól függően, hogy gazdagép, amellyel a kapcsolatot használják.
Ha olyan fiók támogatásait frissíti, ahol a MySQL nem ismeri fel a gazdagép részét, akkor 1133 hibakódot küld vissza, kivéve, ha rendelkezik jelszóval a fiók azonosításához.
A MySQL lehetővé teszi, hogy egy fióknevet csak a felhasználóneve határozzon meg, de ebben az esetben “felhasználónév” @ “%” néven kezelik.