[Megoldva] PHPmyAdmin-ba sima user nem tud bejelentkezni

Sziasztok!

Ma telepítettem Ubuntu 12.4-re apache, php, mysql-t. MySQL-hez feltettem a phpMyAdmin-t. A phpMyAdmin-ba root felhasználóval be tudok jelentkezni.

Létrehoztam felhasználókat, akiknek adatok és szerkezetre teljes joguk van adminisztrációs joguk viszont egy se.

A problémám, hogy ezek a felhasználók nem tudnak bejelentkezni a phpMyAdmin felületre. 1045-ös hibát dob. Mi lehet a probléma?

Hozzászólások

Konzolból ha localhostra bejelentkezel a userekkel az működik?
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"

A lekérdezés eredményének egy sora, bár nem a legolvashatóbb:


|
| % | kisspepe | *ADE7573ACAABCAA5317806EB3GB6BE74D6E9F285 | Y | Y | Y | Y | Y | Y | N | N | N | Y | N | N | Y | Y | N | N | Y | N | Y | N | N | Y | Y | Y | Y | N | Y | Y | N | | | | | 0 | 0 | 0 | 0 | | NULL

phpMyAdmin-ba pedig így néz ki:

kisspepe % Igen SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE Nem

Az utolsó nem-nek az oszlopa az, hogy engedélyezés, de sehol nem találtam meg, hogy azt hol állíthatom igen-re, nem tudom ez lehet-e gond.

Egy ilyet kipróbálnál:
CREATE USER 'valaki'@'localhost' IDENTIFIED BY 'valaki123';
GRANT ALL PRIVILEGES ON *.* TO 'valaki'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

azután belépni a valaki userrek a phpmyadminba?
(itt minden jogosultsága lesz, ezt érdemes szűrni a későbbiekben...)

---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"

Értem, tehát ok, hogy másik gépen nyitom meg a phpmyadmint, a bejelentkezés akkor is localhoston történik.

Ez végülis logikus, és akkor jó is lesz, ha mindet átállítom localhostra, de azt viszont akkor sem értem, ha az van beállítva, hogy bárhonnan bejelentkezhet, akkor localhoston miért nem?

"The % host wildcard doesn't match 'localhost'. By default the mysql client will try to connect via a socket rather than tcp (usually some place like /var/lib/mysql/mysql.sock). You can either change your grant to 'a'@'localhost', or force the client to operate over the TCP stack like

mysql -u a -p --proto=TCP"

---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"

Csak zárójelben jegyzem meg attól függetlenül, hogy megoldódott.
A userek "hostjai" ha minden igaz a mysql adatbázis user táblájában tárolódnak.

Pl érdemes lefuttatni egy ilyet erre a táblára:
select user,host,password from user;

eredmény kb ilyesmi lesz:
mysql> select user,host,password from user;
+-----------------+-----------+-------------------------------------------+
| user | host | password |
+-----------------+-----------+-------------------------------------------+
| root | localhost | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
| root | 127.0.0.1 | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
| root | ::1 | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
| user1 | localhost | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
| user2 | % | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
| user3 | | *AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |

Azaz ahol nem például localhost vagy 127.0.0.1 az érték, ott arra állítod, nyomsz egy "flush privileges"-t utána és kész is. Semmi extrát nem kell utána elvileg állítani.
A grant-al az is megadható, hogy helyileg "A" jelszót távolról pedig "B" jelszót használjon a delikvens.
pl:
grant select, insert... on db1.* to 'user1'@'localhost' identified by 'secretA';
grant select, insert... on db1.* to 'user1'@'127.0.0.1' identified by 'secretB';
grant select, insert... on db1.* to 'user1'@'192.168.0.111' identified by 'secretC';
(persze a 3-ik sor esetében a mysql-nek nem csak localhost-ot kell figyelnie, hanem 0.0.0.0:3306-n)

De javítsanak ki az okosok, ha nagy hülyeséget mondtam volna :)