Portál AbcLinuxu, 10. května 2025 20:40
Řešení dotazu:
mysql
), nebo můžete použít některý z mnoha GUI programů – já třeba používám univerzální SQuirreL SQL. K administraci databáze pak použijte třeba mysqladmin
, který je součástí MySQL.
GRANT
pouze přiděluje práva, ale uživatele můžete vytvořit jedině INSERT
em do příslušných tabulek.
mysql
nebo mysqladmin
, zadával jste jméno serveru za parametr -h
nebo --host
– pokud jste tam nic neměl a připojujete se ze stejného počítače, kde také běží server, zadejte tam asi localhost
. Uživatelské jméno se v případě těch příkazů použije stejné, jako je jméno uživatele, který příkaz spouští (pokud je nezměníte přes parametr), tedy asi root
, pokud potřebujete databázi spravovat. Pokud se chcete připojovat z jiného počítače, budete muset asi nejprve povolit přístup příslušnému uživateli z tohoto počítače, jestli se nepletu, ve výchozím nastavení je povoleno jen přihlášení root
a z localhost
u. Taky si zkontrolujte v konfiguraci serveru (asi my.cnf
), zda máte povolenu komunikaci přes síť, tedy zda je zakomentováno skip-networking
. V opačném případě jde komunikovat jen přes lokální unixový socket, tedy jen ze stejného počítače, kde je databáze (a ne každý klient tenhle způsob komunikace umí).
My.cnf je běžně v /etc/mysql.
Phpmyadmin stačí nainstalovat jako balík (je v repozitářích snad každé distribuce) a poté se k němu připojit přez http://moje.dome.na/phpmyadmin
skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1a ten php myadmin mi přes 127.0.0.1/phpmyadmin nejde ...
Php běží jen jako modul v apachi, ani se v procesech ukazovat nemá.
Zdá se že to nenalezlo mysql server, jste si jistý že běží?
skip-networking
, jak jsem psal tady. MySQL pak pravděpodobně nepřijímá spojení přes síť (pokud tedy skip-netowrking
neignoruje), takže se k ní těžko budete přes síť připojovat.
#
(hash). Když se na ten soubor podíváte, uvidíte tam konfigurační volby a okolo nich spoustu komentářů, které je popisu, vysvětlují, nebo které deaktivují příslušné volby (je možné je také smazat, ale když je pak někdy v budoucnosti budete potřebovat, musíte v dokumentaci pracně hledat, jak se vlastně píšou).
bind_address = 127.0.0.1
, znamená to, že server je dostupný i přes TCP/IP jen z lokálního počítače. Nastavte tam 0.0.0.0
, aby server naslouchal na všech dostupných IP adresách a byl tedy dostupný i ze sítě.
If the NO_AUTO_CREATE_USER SQL mode is not enabled and the account named in a GRANT statement does not exist in the mysql.user table, GRANT creates it. If you specify no IDENTIFIED BY clause or provide an empty password, the user has no password. This is very insecure. If NO_AUTO_CREATE_USER is enabled and the account does not exist, GRANT fails and does not create the account unless the IDENTIFIED BY clause is given to provide a nonempty password.
GRANT
vytvoří uživatele s přístupem jen přes localhost
). Ale nastavování přístupových práv v MySQL mi nikdy nesedlo, takže jsme byl vždycky rád, že jsem to nějak nastavil, a dál jsem to radši nezkoumal…
skip-networking
, což plyne z výše uvedené chybové hlášky, pak vám to jinak než přes unixový socket nepůjde. Takže se nebudete moci připojit ze vzdáleného počítače, a z lokálního jenom s programy, které unix socket podporují. Doporučil bych tedy udělat to, co jsem psal v tomto komentáři – nastavit MySQL tak, aby přijímala spojení ze sítě.
Mimochodem, to localhost
se týká jen tabulek přístupových práv, když to použijete na příkazové řádce u parametru -h
, je to normální jméno počítače. Přístup přes unixový socket se na příkazové řádce zapíná jiným přepínačem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.