1

Tema: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Na Windows sistemu imam nameščen XAMPP in sicer ima vgrajene naslednje različice programov:

  + Apache 2.2.11
  + MySQL 5.1.33 (Community Server)
  + PHP 5.2.9 + PEAR

V PHP skripti se preko

include("db.php")

povezujem na MySQL bazo. Žal mi vedno izvrže tole:

Access denied for user 'ODBC'@'localhost' (using password: NO)

V db.php imam

$dbhost = 'localhost';
$dbuser = 'uporabnik;
$dbpass = 'geslo;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("");
$dbname = 'ime_baze';
mysql_select_db($dbname);

Uporabnik je narejen, ima geslo, pravice za dostop do baze. Težava izgine, če vpišem zgornjo kodo direktno v mojo skripto. Naj povem še, da mi to nikoli ni delalo težav in da zadeva lepo teče na online strežniku preko include. Preiskal sem že vse nastavitve v my.ini, apache conf in php.ini pa se mi niti malo ne sanja kje je težava.

Vsaka pomoč je dobrodošla! Hvala!

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Kaj pa če daš localhost 127.0.0.1?

the Religion of the Christians is Foolish, Inasmuch as They Worship
a Crucified Man, and Even the Instrument Itself of His Punishment
REFLEKTOR.SI in Christoossov pasijon

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Če si mislil, da spremenim localhost v 127.0.0.1 v skripti: ni efekta sad

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Napaka je v tem da skripta sploh ne dobi ukaza mysql_connect... Zakaj ?!
Ker je skrit v spremenljivki $conn.

Tvoja koda:

$dbhost = 'localhost';
$dbuser = 'uporabnik;
$dbpass = 'geslo;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("");
$dbname = 'ime_baze';
mysql_select_db($dbname);

Izpis tvoje kode je:
mysql_select_db($dbname);

Skripta NE more dobiti povezave do baze saj je skrita pod spremeljivko.
Evo napisal sem ti novo skripto ali popravil tvojo staro:

<?
mysql_connect ("localhost", "uporabnik", "geslo") or die (mysql_error());
mysql_select_db("ime-baze");
?>

Pazi pa tudi na narekovaja pri uporabniku in geslu!
Če pa preuredim tvojo:

$dbhost = 'localhost';
$dbuser = 'uporabnik';
$dbpass = 'geslo';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("");
$dbname = 'ime_baze';
echo $conn;
mysql_select_db($dbname);

Obe 2 delujeta!
SREČNO!

Nazadnje urejal matic (05.08.2009 22:24:35)

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Tudi če odstranim $conn, ne deluje. Glede na primere tukaj: http://si.php.net/function.mysql-connect pa se mi zdi, da to sploh ne bi smelo imeti veze.

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Bilo bi koristno, če bi lahko prilepil celo kodo, ker ta del deluje v redu (del, kjer to povezavo tudi uporabljaš).

Drugače pa kaže kot, da PHP ne upošteva tvojih podatkov podanih funkciji mysql_connect.

P.S. Miha je pred urejanjem napisal, da ta način ni dober in je njegov boljši ampak, če se pogovarjamo o tem kateri način je boljši je to sigurno no-go (razen za kakšne male skripte).

Idealno je, da bi uporabljal PDO ali pa vsaj MySQLi razširitev.

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Glede na primer na php.net je tudi tvoja koda še vedno nepravilna.
Primer iz php.net-a

$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

pri if stavku je $link uključen.

Sedaj pa prosim uporabi nasledno kodo:

<?
mysql_connect ("localhost", "uporabnik", "geslo") or die ("Problem s povezavo na host!");
mysql_select_db("ime-baze") or die ("Problem s povezavo z bazo!");
?>

Probaj tole sigurno deluje! Čene je nekaj močno narobe. Tvoj primer pa nikakor ne deluje!

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Sem uporabil kodo in ni efekta (kot sem predvideval). Problem je gotovo nekje v pravicah, saj brez include moja koda dela, preko include pa noče.

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Aha! Poj je pa problem v include!
Mislim da si pozabil ";"!
Tvoja koda

include("db.php")

Ni ni podpičja!! big_smile

Daj tole:

include("db.php");

Ali:

include_once("db.php");

Če pa to ne deluje sem pa brez idej! big_smile SREČNO

Nazadnje urejal matic (06.08.2009 18:36:24)

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

To je vse urejeno, je podpičje, ker drugače bi se tako ali tako PHP pritoževal tongue

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink

Re: [rešeno] [MySQL]:Access denied for user 'ODBC'@'localhost' (using password: NO)

Našel sem težavo. Bila je, kot sem predvideval v include("db.php"). Iz neznanih razlogov PHP ni vključil datoteke roll , je pa to storil ko sem zapisal celotno pot na disku do nje. Očitno nek security feature nove verzije PHPja. Bolj me čudi, da PHP ni izvrgel nobene napake yikes . Sem pa do rešitve prišel čisto slučajno ob preizkušanju wordpressa, ki je čudežno deloval.

Moja domaca stran: http://andrej.mernik.eu
Na spletu ze od junija 2002 wink