Gå til innhold

Koble PHP og mSQL når de ligger på hver sin server


Anbefalte innlegg

Jeg har et problem når jeg skal kjøre et php-script som kobler opp mot en mySQL-server. De ligger ikke på samme maskin så jeg kan ikke bruke localhost.

 

Jeg har opprettet en ny bruker i mySQL slik:

INSERT INTO user (host, user, password, select_priv) VALUES ('hostnavn.host.no', 'navn på brukeren', PASSWORD('passordet til brukeren'), 'Y');

 

 

SQL-scriptet starter på følgende måte:

12 ?php

13 $tilkobling =mysql_connect('ip-adresse til mySQL-serveren',

14 'navn på brukeren',

15 'passordet til brukeren');

16 mysql_select_db("navn på databasen");

....

 

Her er feilmeldingen jeg får i nettleseren:

Warning: mysql_connect(): Access denied for user 'navn på brukeren'@'hostnavn.host.no' (using password: YES) in script.php on line 15

 

Er det noen som kan tenke seg til hva jeg gjør feil?

Lenke til kommentar
Videoannonse
Annonse

Prøv med

<?php
$serverip = "Din 1337 server ip adresse";
mysql_pconnect($serverip,"brukernavn","passord")
   or die("Kunne ikke koble til" . $serverip . "");
?>

Er ikke sikker på at det vil funke, bare noe jeg tror, skriv gjærne tilbake om det funket også eller selvsagt om det ikke fungerte. :)

 

Nazgul:

Er ikke diskusjon et forum hvor mennesker hjelper andre mennesker?

Du er såvidt jeg vet ikke en moderator og isteden for og poste slike inlegg anbefaler jeg og holde kj**t eller hjelpe, om han ikke har veldig god kunnskap gjør vel ikke det noe?

En plass må man jo starte...

Endret av [email protected]
Lenke til kommentar
Nazgul:

Er ikke diskusjon et forum hvor mennesker hjelper andre mennesker?

Du er såvidt jeg vet ikke en moderator og isteden for og poste slike inlegg anbefaler jeg og holde kj**t eller hjelpe, om han ikke har veldig god kunnskap gjør vel ikke det noe?

En plass må man jo starte...

7075962[/snapback]

Jeg har gitt han svaret, har jeg ikke?

Du skrev jo bare det samme som han skrev, kanskje jeg bare burde rapportere deg for spamming?

 

Problemet her er en av to.

Feil passord, eller at brukeren ikke har tilgang til mysql fra annet enn localhost.

Jeg slår en flue for nr. to, og dette har jeg allerede sagt, så hvorfor ikke ta lykkepillene dine istedenfor å hisse deg opp ubegrunnet?

Lenke til kommentar
Gjest Slettet+142
Jeg vedder 5 norske riksdaler på at det er tilgang fra noe annet enn localhost som er problemet!

 

:yes:

7126333[/snapback]

eg har samme problemet som trådstarter, tror eg

har prøvd å grante 'root'@'%' men virker fremdeles ikkje

 

kordan endrer man tilgangen?

Lenke til kommentar

Da antar jeg også at du bruker root i scriptet ditt også?

 

Man endrer tilgang ved å bruke http://dev.mysql.com/doc/refman/5.0/en/grant.html

 

Virker som at en del (ikke bare denne tråden) har fobi mot å lese manualer, og det fungerer litt dårlig i lengden.

Men, jeg er jo så snill:

GRANT ALL PRIVILEGES ON <database eller *(for alle)>.<tabell eller *(for alle)> TO '<BRUKERNAVN>'@'<localhost eller %(for alle) eller annen ip/dns>' IDENTIFIED BY '<PASSORD>';

Endret av Nazgul
Lenke til kommentar

Takk for svaret Nazgul, raskt levert :)

Du hadde helt rett i at jeg måtte opprette en bruker med rettigheter utenfor localhost. Beklager at jeg er sen å takke, men jeg glemte hele posten etter at jeg fikk det til.

 

P.S. Jeg har ikke nok kunnskaper til å se at det var et databaseproblem, kunne like gjerne vært feil php-syntax.. Sorry for feilposting.

Og btw så trodde jeg at slike hjelpeforum som dette eksisterte for å slippe å bla i store tunge manualer. Det er jo her vi kan spørre de som faktisk gidder det ;)

Lenke til kommentar
P.S. Jeg har ikke nok kunnskaper til å se at det var et databaseproblem, kunne like gjerne vært feil php-syntax.. Sorry for feilposting.

Dette er selvfølgelig en ærlig feil, men nå vet du det ihvertfall til neste gang :)

Og btw så trodde jeg at slike hjelpeforum som dette eksisterte for å slippe å bla i store tunge manualer. Det er jo her vi kan spørre de som faktisk gidder det ;)

7133130[/snapback]

Tja, kanskje ikke så dumt å lære litt på egenhånd.

Du slapp å bla gjennom manualen, ettersom du fikk siden du trengte.

Jeg mener det er mye mere hjelp, ettersom du løser problemet selv, du får bare en pekepinn til hva du må gjøre.

Du klarte det jo tydeligvis også, så da står jeg fortsatt for at dette er den beste metoden. (Selv om jeg er enig i at mysql-manualen kan være ganske drøy)

Lenke til kommentar
Gjest Slettet-rXRozPkg

Jeg ville nå si at det er greit å se at det er en databasefeil ut i fra feilmeldingen ("Access denied for user").

 

Hadde det vært en syntaks feil, ville det stått noe ala Parse error: syntax error, unexpected someting, expecting somthing else on someline in somefile.php

 

Uansett... hadde du f.eks. søkt etter mysql access denied for user, ville du fått opp dette som første treff på google:

http://dev.mysql.com/doc/refman/5.0/en/access-denied.html

 

Ut i fra det som står her kunne du eventuellt sett om du fikk løst problemet eller ikke, for så å stille spørsmålet på forummet.

 

Har du forresten lest noen skikkelige PHP/MySQL tutorials? Jeg ser ut i fra den koden du har her at den mangler alt av error handling, som kunne hjulpet deg mye bedre på vei enn feilmeldingen du får via PHP.

 

Ta en titt på disse to: mysql_error og mysql_errno.

 

 

Slik ville jeg skrevet en meget enkel tilkoblingsrutine:

$database_ok = false;
$link = mysql_connect(masse argumenter);

if(!$link) {
  echo "Kunne ikke koble til databasen, følgende feil oppstod:";
  echo mysql_errno($link) . ": " . mysql_error($link). "\n";
} else {
  if(!mysql_select_db("navn på databasen", $link)) {
     echo "Kunne ikke velge database, følgende feil oppstod:";
     echo mysql_errno($link) . ": " . mysql_error($link). "\n";
  } else {
     // Alt er OK, kjør i vei.
     $database_ok = true;
  }
}

if(!$database_ok) {
   // Det har skjedd en feil.
   // man kan kanskje skrive ut feilene her istedenfor over.
} else {
  // alt er bra, tut og kjør.
}

Endret av Slettet-rXRozPkg
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...