Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana nazwy administratora
Forum PHP.pl > Forum > Bazy danych > MySQL
misty
hej,
jak moge zmienic nazwe administratora dla mysql? z 'root' na cos innego?


pzdr,
misty
suchy1
a nie mozesz stworzyć nowego uzytkownika o prawach root ;-)
misty
no moge:) ale chodzi mi o to, czy sie da zmienic nazwe? smile.gif
artega
Nie wystarczy takie proste zapytanie?
  1. UPDATE user SET User='nowaNazwa' WHERE User='staraNazwa'
.radex
Artega, chodziło o Usera bazy mysql, a nie usera, który jest w jakiejś tabeli mysql.
l0ud
Logujemy się na roota do konsoli mysql'a albo wykonujemy te zapytania przez skrypt pracujący na nim:

zmieniamy bazę danych na tą 'wewnętrzną'
  1. USE mysql;


Zmieniamy hasło do roota:
  1. UPDATE user SET password=PASSWORD('nowe_haslo') WHERE User="root";


Odświeżamy uprawnienia:
  1. FLUSH PRIVILEGES;


Powinno działać smile.gif
artega
@radex_p przeczytałem dokładnie temat, wiem że chodziło o nazwę użytkownika MySQL dlatego napisałem zapytanie które je zmienia ale nawet nie sprawdziłeś mojego rozwiązania i założyłeś że pracujmeny na bazie innej niż wewnętrznej mysql. Czego nie zrobiłem to tylko nie dodałem
  1. FLUSH PRIVILEGES
misty
lOud, chodzi mi o zmiane nazwy, nie hasla. chce zmienic nazwe 'root' na 'nowa_nazwa'
kwiateusz
no to analogicznie do przykladu wyzej, wystarczy delikatnie zmienic...

  1. UPDATE user SET User="nowa nazwa" WHERE User="root";


czyli jak artega pisał (z tym ze nie podal ze trzeba dac use mysql) smile.gif
misty
faktycznie poszlo. jakos nie pasowalo mi to ze zalogowana na 'roota' moge zmienic nazwe z 'root' na cos innego. no bo nadal bylabym zalogowana na uzytkownika ktorego juz nie ma. no ale poszlo.

takie jeszcze jedno male pytanie mam: dodaje do tabeli 'user' nowego uzytkownika oraz jego haslo. jednak przy logowaniu uzytkownik nie moze zalogowac sie z uzyciem hasla, moze tylko bez, czyli:
  1. mysql -u uzykownik


zas po probie zalogowania z haslem (ktore jest zapisane w tabeli user!) otrzymuje info ze access denied..
artega
Cytat
czyli jak artega pisał (z tym ze nie podal ze trzeba dac use mysql)

Uznałem to za oczywiste/logiczne bo skoro chcemy pracować na bazie wewnętrznej mysql to wyraźnie zaznaczamy to przez "uświadomienie" maszynie o co nam chodzi winksmiley.jpg tudzież można bez USE
  1. UPDATE mysql.user SET User='nowaNazwa' WHERE User='staraNazwa'

Cytat
faktycznie poszlo. jakos nie pasowalo mi to ze zalogowana na 'roota' moge zmienic nazwe z 'root' na cos innego. no bo nadal bylabym zalogowana na uzytkownika ktorego juz nie ma. no ale poszlo.

To dlatego, że tablica uprawnień jest keszowana.
Cytat
takie jeszcze jedno male pytanie mam: dodaje do tabeli 'user' nowego uzytkownika oraz jego haslo. jednak przy logowaniu uzytkownik nie moze zalogowac sie z uzyciem hasla, moze tylko bez

Prawdopodobnie nie przeładowałeś tablicy uprawnień po jej zmianie. A wpisując mysql -u uzykownik bez aktualizacji kesza uprawnień logujesz się na konto goscia, dlatego po zmianie tablicy mysql.user wpisz
  1. FLUSH PRIVILEGES;
misty
Prawdopodobnie nie przeładowałeś
nie przeladowalas smile.gif

ale wlasciwie to przeladowalam i dlatego nie wiem o co chodzi. po kolei zrobilam:

  1. INSERT INTO user (User, Password) VALUES ('nazwa', 'haslo');
  2. FLUSH privileges;


no i nie moge sie zalogowac na tego uzytkownika z uzyciem hasla:/ tylko bez:/
artega
Musisz użyć funkcji PASSWORD
  1. INSERT INTO user (User, Password) VALUES ('nazwa', PASSWORD('haslo'));
  2. FLUSH privileges;

lub na przykładzie z manuala
  1. SET PASSWORD FOR 'some_user'@'some_host' = PASSWORD('mypass');

powinno wystarczyć
misty
hmm,
pierwszy przyklad ktory mi podales to w sumie to samo co robilam uprzednio, tyle ze nie uzywajac funkcji 'PASSWORD'. i to nie dziala. tzn dodaje sie haslo zakodowane do tablicy, ale jak sie loguje przy uzyciu tego uzytkownika to moge tylko i wylacznie bez hasla .. tak, nie zapomnialam o flush privileges smile.gif

z kolei drugi sposob zwraca mi error, no ale przejrze manuala.

ps. nie powinnam gdzies ustawic ze ten jak sie ten user loguje to wymagane jest haslo?
artega
Misty, jeżeli użyjesz tylko login'u to serwer nie zaloguje Ciebie jako użytkownik admin nawet jeżeli wywołasz mysql -u admin (gdy użytkownik ma ustawione hasło) - w takiej sytuacji trafisz na konto goscia. Możesz je usunąć, wtedy się przekonasz
  1. DELETE FROM mysql.user WHERE User=''

Zapominasz o ty, że musisz przyznać użytkownikowi host z którego może się logować
  1. INSERT INTO user (Host, User, Password) VALUES ('localhost', 'admin', PASSWORD('test'));
  2. FLUSH privileges;

Powyższe zapytanie wprowadzi użytkownika admin, który nie ma żadnych uprawnień. Oczywiście by zalogować się wpisz mysql -u admin -p
misty
host.. no wlasnie.. dzieki za pomoc i cierpliwosc!
pzdr:)
misty
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.