Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Serwer MySQL: problem z uprawnieniami użytkowników
http://forum.freesco.pl/viewtopic.php?f=22&t=15603
Strona 1 z 1

Autor:  za017 [ środa, 4 lipca 2007, 08:49 ]
Tytuł:  Serwer MySQL: problem z uprawnieniami użytkowników

Witam!
Kolejny problem, którego nie udało mi się rozwiązać :[. Mam zainstalowane NND-0.2.2 z najnowszego obrazu a na nim mysql z paczki 5.0.24a-3nnd.
Po ustawieniu hasła root'a dodałem sobie użytkownika:
: [/] [] ()
grant select, insert, update, delete, create, drop, alter, index
on my_db.*
to my_user identified by 'my_password';

Po czym wylogowałem się z root'a i zalogowałem ponownie jako my_user.
Wszystko było na pozór prawidłowo, jednak po restarcie całego systemu, nie mogłem się już zalogować jako zwykły user a tylko jak root.

Sprawdziłem w tabeli user bazy danych mysql, że mój użytkownik ma wszystkie przywileje ustawione na N. Więc ponownie wykonałem polecenie grant (j.w.) i po sprawdzeniu okazało się, że zawartość tabeli user nie zmieniła się. Spróbowałem więc ręcznie ustawić dowolny przywilej za pomocą update. Serwer zwrócił wynik query OK 1 rows, lecz po wylistowaniu tego rekordu wartość tego pola nadal była ustawiona na N.

Nie mogąc sobie z tym poradzić, zatrzymałem demona mysqld, usunąłem katalog /var/lib/mysql i ponownie wystartowałem /etc/rc.d/mysqld start.
Serwer wystartował, ustawiłem hasło root'a: /usr/bin/mysqadmin -u root password 'moje_hasło' wykonało się bez zgłaszania błędów.
Jednak teraz nie mogę się zalogować nawet na root'a.
Próbowałem zarówno z localhosta jak i z hp60 (nazwa hosta)
: [/] [] ()
[root@hp60 lib]# mysql -u root -h localhost -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@hp60 lib]# mysql -u root -h hp60 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'hp60' (using password: YES)

W tabeli user bazy danych mysql root miał ustawione prawa do logowanie się zarówno z localhosta jak i z hp60, natomiast my_user mógł logować się z dowolnego hosta (w polu HOST rekordu 'my_user' wpisałem wartość '%') - oczywiście są to ustawienia, które wprowadziłem na samym początku, gdy jeszcze wszystko wydawało się działać prawidłowo. Usunąłem też płotek z opcji skip-networking pliku my_cnf, niemniej na razie loguję się tylko z localhosta .
Czy przyczyną tych problemów mogą być np. błędne ustawienia sieci ?
W pliku /etc/hosts mam:
: [/] [] ()
127.0.0.1 localhost
192.168.1.158 hp60

Dodałem też (zgodnie z sugestią wyszukaną na tym forum) wpis do /etc/hosts.allow:
Cytuj:
mysqld:ALL

Nazwa mojego hosta /etc/HOSTNAME:
: [/] [] ()
hp60

Autor:  TheL [ środa, 4 lipca 2007, 09:04 ]
Tytuł: 

najprosciej bedzie odinstalowac mysql i zrobic to jeszcze raz, sprawdz czy wtedy rootem mozesz dodawac cos do bazy jakas tabele itp i dopiero wtedy zrob usera (najszybciej phpmyadminem)

Autor:  za017 [ środa, 4 lipca 2007, 09:24 ]
Tytuł: 

Już to zrobiłem za pomocą nndpkg. Odinstalowałem mysql, ale po ponownym zainstalowaniu sytuacja była dokładnie taka sama: po ustawieniu hasła root nie mogłem się już zalogować nawet na to konto.
Dlatego zapytałem o konfigurację sieci: przy pierwszej instalacji serwer działał przez chwilę, przy następnej problemy pojawiają się od razu.
Pierwsze podejrzenie - coś w międzyczasie zostało zmienione w konfiguracji. Ale - podkreślam - po przetestowaniu serwera, wyłączyłem komputer, a następnego dnia od razu po jego uruchomieniu pojawiły się problemy. Nie edytowałem absolutnie żadnych ustawień, pomiędzy zatrzymaniem systemu a jego ponownym uruchomieniem.
Natomiast wszelkie zmiany w konfiguracji mysql testowałem od razu, restartując demona mysqld, więc nie jest to raczej efekt jakiejś zmiany wprowadzonej w konfiguracji, której bym nie przetestował (zresztą wiele nie zmieniałem).
Czy przy odinstalowaniu mysql za pomocą nndpkg nie trzeba ręcznie usuwać żadnych plików ? Niektóre 'automaty' (np. apt) pozostawiają często różne 'śmieci', które trzeba usuwać ręcznie.

Autor:  TheL [ środa, 4 lipca 2007, 09:26 ]
Tytuł: 

same hasla siedza w bazie wiec warto sprawdzic czy nie zostalo cos w /var/lib/mysql

Autor:  za017 [ środa, 4 lipca 2007, 09:40 ]
Tytuł: 

W tej chwili zrobiłem to wszystko jeszcze raz:
1. zatrzymałem mysqld
2. odinstalowałem mysql za pomocą nndpkg
3. usunąłem katalog /var/lib/mysql
4. zainstalowałem mysql za pomocą nndpkg
5. uruchomiłem demona /etc/rc.d/mysqld start
6. ustawiłem hasło root'a
7. zalogowałem się jako root i dodałem przywileje userowi (dokładnie tak, jak to opisałem w pierwszym poście).

Jednak użytkownik dalej nie może się zalogować. W tabeli user w rekordzie związanym z tym użytkownikiem pole host ma wartość '%'.

Ponadto wszystkie przywileje ustawione są na 'N', mimo nadania tych ośmiu przywilejów z pierwszego posta.

Autor:  TheL [ środa, 4 lipca 2007, 09:47 ]
Tytuł: 

robiles to przez konsole czy przez phpmyadmina ? zobacz przez niego wtedy zobaczysz w czym jest problem, a co mowia logi ?

Autor:  za017 [ środa, 4 lipca 2007, 09:58 ]
Tytuł: 

Wszystko robiłem spod konsoli, ponieważ phpmyadmin działał tylko na początku. Teraz też nie może zalogować się do serwera:
: [/] [] ()
#1045 - Access denied for user 'pma'@'localhost' (using password: YES)

(powyższy komunikat skopiowałem z okna przeglądarki)

Oczywiście hasło ustawiłem własne i phpmyadmin działał na początku prawidłowo (do pierwszego restartu systemu).
W logach nic nie ma:

mysqld.log jest zupełnie pusty
pacman.log nie ma informacji o żadnych błędach

nie ma również błędów w kernel ani dmesg.

Autor:  TheL [ środa, 4 lipca 2007, 10:07 ]
Tytuł: 

zaloguj sie na phpmyadmina na roota a nie usera

Autor:  za017 [ środa, 4 lipca 2007, 10:10 ]
Tytuł: 

Logowałem się właśnie na root'a, lecz jak widać, to user, z którego korzysta phpmyadmin nie może uzyskać dostępu do bazy danych.

PS Ustawiłem w config.ini.php w folderze phpmyadmin controluser=root oraz jego hasło i phpmyadmin uzystał dostęp do bazy danych. Wybrałem bazę danych mysql i ustawiłem Select_priv (tak na próbę) dla my_user.
Zmiana została zapamiętana, ale dlaczego nie działa spod monitora mysql, skoro nawet zwraca wynik z którego wynika, że jeden wiersz został dopasowany do zapytania ?

Autor:  idub [ czwartek, 12 lipca 2007, 09:46 ]
Tytuł: 

mam trochę inny problem.
Po instalacji mysql dostaję taką informację podczas wprowadzania hasła:
Cytuj:
/usr/bin/mysqladmin -u root -h serwer password 'haslo'
/usr/bin/mysqladmin: connect to server at 'serwer' failed
error: 'Lost connection to MySQL server during query'


czy mógłby mi ktoś wytłumaczyć co jest nie tak?

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/