Portál AbcLinuxu, 14. května 2025 05:42

Dotaz: Pripojeni k MySQL z PHP

16.2.2004 14:54 Martin Majoroš | skóre: 1
Pripojeni k MySQL z PHP
Přečteno: 266×
Odpovědět | Admin
Zdravim, Mam RH. 9.0. Mam problem s pripojenim z PHP skriptu k databazi MySQL. Pouzivam vse z distribuce. Chybela mi podpora MySQL funkci v PHP a tu jsem si doinstaloval. Nyni mi to pise tuto hlasku:
Warning: Access denied for user: 'root@localhost' (Using password: NO) in /var/www/html/index.php on line 8 
A to i v pripade, kdy se k databazi prihlasuji pod jinym jmenem nez root. MySQL mi bezi. V shellu se do MySQL prihlasim jak pod uzivatelem root, tak i pod jinym uzivatelem.
Ve skriptu se prihlasuji k databazi nasledovne:
mysql_connect($hostitel, $uzivatel, $heslo);
Takto mi to nejde ani kdyz uzivatel je root.
$hostitel = "localhost";
Hlavne na tom nechapu, ze zadavam heslo a on mi napise Ussing password: no. Cetl jsem tady kupu diskusi na toto tema, ale zadny tip mi nefungoval. Pls poradte mi.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.2.2004 18:30 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím na jakém standartním portu se ta funkce připojuje pokud není port zadaný. Skus tam jako server zadat
$hostitel = "localhost:příslušný_port_na_kterém_běží_mysql"

Taky zaleží zda se použije to jméno localhost nebo IP 127.0.0.1 a co máte v databázi toho mysql povoleno zda localhost nebo tu IP nebo oboje atd...

Viz dokumentace :
http://cz.php.net/manual/cs/function.mysql-connect.php

Parametr server může obsahovat číslo portu ve tvaru "hostname:port" nebo cestu k socketu ve tvaru ":/cesta/k/socketu" pro localhost. Poznámka: Vždy když uvedete "localhost" nebo "localhost:port" jako server, klientská knihovna MySQL na toto nebude brát zřetel a pokusí se připojit na místní soket ("named pipe" na Windows). Ccete-li použít TCP/IP, uvedte "127.0.0.1" namísto "localhost". Pokud se klientská knihovna MySQL pokouší připojovat na špatný soket, měli byste nastavit správnou cestu jako mysql.default_host ve vaší PHP konfiguraci a nechat pole server prázdné. Podpora pro ":port" byla přidána v PHP 3.0B4. Podpora pro ":/cesta/k/socketu" byla přidána v PHP 3.0.10.
16.2.2004 19:22 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
MySQL bezi na portu 3306 a i vpripade, ze zadam
$hostitel="localhost:3306";
tak to nebezi. Varianty
$hostitel="127.0.0.1";
$hostitel="127.0.0.1:3306";
jsem vyzkousel a vysledek byl opet neuspesny. mysql.default_host, mysql.default_port, mysql.default_socket mam nevyplnene. U uzivatele root jsem nijak prava nemenil a druheho uzivatele jsem vytvoril prikazem
 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON forum.* TO forum@localhost IDENTIFIED BY 'forum';
V pripade napsani cesty k soketu
$hostitel = "/var/lib/mysql/mysql.sock";
to dopadlo taky neuspesne. Vubec si s tim nevimrady.
16.2.2004 19:53 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
No a máš povolené přistupování k té mysql databazi i podle IP tj máš tam v tabulce práv i IP 127.0.0.1 :-)

Nejednoduší je to když si tu tabulku práv vypíšeš. Pod mysql se nastavují práva trochu jinak pomocí tabulky :-)
16.2.2004 20:26 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Jestli si myslel tohle,tak to mam takto:

+-----------+-------+------------------+-------------+-------------+-------------+
| host      | user  | password         | Select_priv | Insert_priv | Update_priv |
+-----------+-------+------------------+-------------+-------------+-------------+
| localhost | forum | 0f0dbe0300330c1b | Y           | Y           | Y           |
| 127.0.0.1 | forum | 0f0dbe0300330c1b | Y           | Y           | Y           |
+-----------+-------+------------------+-------------+-------------+-------------+
2 rows in set (0.01 sec)
Vysledek pro volani uzivatele forum s
$hostitelem = "127.0.0.1"
je stejny a to:
 Warning: Access denied for user: 'root@localhost' (Using password: NO) in /var/www/html/index.php on line 8
17.2.2004 19:28 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Ale s té chybové hlášky se snazí připojit jako root ktereho tam nemate 'root@localhost' :-)

Pod jakým uživatelem běží ten skript ? root ? Skuste tam přidat uživatele root.

Neprepisuje se vám uživatel na ten pod kterým běží ten www server nebo ten skript ?
17.2.2004 23:19 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Uzivatel root tam je a to s heslem. Ja jsem ti jenom vypsal jak vypada ten uzivatel forum, pres ktereho se snazim pripojit k databazi ve skriptu. Skript by mel bezet pod uzivatelem apache.
17.2.2004 23:56 Petr Mika | skóre: 8
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Warning: Access denied for user: 'root@localhost' (Using password: NO) in /var/www/html/index.php on line 8

zkuste sem prosim nakopirovat tech prvnich par radku z dotycneho souboru az do te osudne kde to exne...
18.2.2004 15:21 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Obsah skriptu
Obsah skriptu PHP je nasledujici.
  $hostitel = "localhost";
  $uzivatel = "forum";
  $heslo = "forum";
  $pripojeni = mysql_connect($hostitel, $uzivatel, $heslo);
18.2.2004 22:07 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Obsah skriptu
A když tam zapíšete $pripojeni = mysql_connect( localhost , forum , forum );

Tak to funguje ?
19.2.2004 00:33 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Obsah skriptu
Vysledek je prave uplne stejny.
19.2.2004 08:23 Petr Mika | skóre: 8
Rozbalit Rozbalit vše Obsah skriptu
Kdyz vam to pise ze chyba nastane na osmem radku tak jak je mozne ze obsah vaseho skriptu ma jen 4 radky?
20.2.2004 14:45 Martin Majoroš | skóre: 1
Rozbalit Rozbalit vše Obsah skriptu
Ve skriptu byly zakomentovane radky a ty jsem sem samozrejme nedal. Zkousel jsem odstranit heslo u uzivatele root a po te se do databaze pripojim jako root. Problem je v tom, ze funkce mysql_connect() vubec nebere ohled na sve argumenty a snazi se pripojovat jako uzivatel root bez pouziti hesla.
Dalibor Smolík avatar 19.2.2004 10:11 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Pripojeni k MySQL z PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jsem naprosty laik - mysql instaluji z balicku v ramci distribuce a nepouzivam heslo. (Sice menim v konfiguraci adresar databaze, ale to sem nepatri). V PHP pouzivam dva soubory:
globals.php
$hostName="localhost" ;
$userName="root" ;
$password="" ;
$databaseName = "prace" ;
pak deklaruji pripojeni k databazi v jinem skriptu
require("globals.php"); $connection = mysql_connect($hostName,$userName,$password)//("localhost",root) or die ("Nemohu otevřít server");
$db = mysql_select_db("$databaseName", $connection) or die //("prace"),
("Nemohu otevřít vybrat databázi");
pak jiz $sql = "...."
atd..
Nic jineho jsem neupravoval, php spoustim pod uzivatelem. Soubory se skripty i databaze maji prava pro vsechny.
Mozna vam to pro zacatek pomuze. Dalibor
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.