Marensius Skrevet 6. desember 2009 Del Skrevet 6. desember 2009 (endret) Hallo, Jeg har satt opp en mySQL server på privat serveren min som jeg nå skal prøve å koble til via PHP på webhotellet mitt, så jeg må ha en ekstern tilkobling. Har fått satt opp mySQL serveren med remote access etter tutorials o.l. som jeg har funnet på nettet, så i teorien skal den funke. jeg har satt bind-address = 192.168.10.103, i config fila(linux server) og gitt brukeren 'brukernavn' tilgang til serveren. Så har jeg laget en database med kjøringene CREATE TABLE contacts (id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,phone varchar(20) NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email varchar(30) NOT NULL,web varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))"; INSERT INTO contacts VALUES ('','John','Smith','01234 567890','00112 334455','01234 567891','[email protected]','http://www.gowansnet.com') Dette har oppdrettet en tabell contacts for testing. Når jeg legger ut <? $username="brukernavn"; $password="passord"; $database="database"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die(mysql_error()); $query="SELECT * FROM contacts"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); echo "<b><center>Database Output</center></b><br><br>"; $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); echo "<b>$first $last</b><br>Phone: $phone<br>Mobile: $mobile<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>"; $i++; } ?> i en index.php på serveren så kobler den opp som den skal og kjører ut informasjonen, men dette er da lokalt. Så når jeg prøver ekstern tilkobling med <? $username="brukernavn"; $password="passord"; $database="database"; mysql_connect('-IP-',$username,$password); @mysql_select_db($database) or die(mysql_error()); $query="SELECT * FROM contacts"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); echo "<b><center>Database Output</center></b><br><br>"; $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); echo "<b>$first $last</b><br>Phone: $phone<br>Mobile: $mobile<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>"; $i++; } ?> Så får jeg bare utskriften; Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '-IP-' (4) in /home/,,,/public_html/phpoutput.php on line 6 Access denied for user 'nobody'@'localhost' (using password: NO) Og det er dette som er problemet, hvorfor vil den ikke koble til som den skal via remote access? Når jeg prøver å kjøre linux kommando; mysql -u brukernavn –h IP –p så får jeg tilgang og alt funker som det skal. Håper noen kan slenge litt lys på hva jeg gjør feil/hva som må til for at det skal funke. Endret 7. desember 2009 av Marensius Lenke til kommentar
TeisL Skrevet 6. desember 2009 Del Skrevet 6. desember 2009 Hei, har du husket å åpne mysql porten (3306) i ruteren? Lenke til kommentar
Marensius Skrevet 6. desember 2009 Forfatter Del Skrevet 6. desember 2009 Hallo, Jada jeg har åpnet 3306 porten Er det jeg syns er så rart, for jeg kan koble til lokalt og jeg kan koble til eksternt i terminal med "mysql" kommandoer. Det er ingenting problemer da, problemet er når jeg skal koble til via en php fil. for det nekter. Jeg har også database for wc3ft cs servere som kjører brukerdatabasen sin hos meg. Det er det heller ingen problemer med. Serverene kobler opp uten problem og legger inn informasjon som de skal og henter ut informasjon. Alt funker med cs + mysql. Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 (endret) det kan være at brukernavnet må være på formen 'brukernavn'@'hostname'. ser ut som mysql defaulter til 'localhost', mens du har åpnet for en bruker på en annen host ... prøv 'brukernavn'@'-IP-' elns. Endret 7. desember 2009 av quantum Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 (endret) <?php //Kobler til databasen if (!$link = mysql_connect('IP', 'brukernavn', 'passord')) { die(mysql_error()); } if (!mysql_select_db('database')) { die("Kunne ikke bruke databasen 'databasenavn'"); } // Gjør noe med databasen her. ?> Prøver ut denne kode så får jeg; Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'IP' (4) in /home/.../public_html/phpkobling.php on line 3 Can't connect to MySQL server on 'IP' (4) Prøvde med brukenavn@hostname uten at det funket. Har nå også prøvd fra flere andre servere å kontakte mySQL via terminal å det funker helt fint. Men det funker ikke via php Endret 7. desember 2009 av Marensius Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 det *må* jo være noe galt med credentials-variablene eller ip-variabelen i php, siden du f.eks. får en feilmelding om at brukeren 'nobody' ikke får tilgang, når du faktisk prøver å koble deg opp som 'brukernavn'? kan ikke php, så jeg ser ikke sånn umiddelbart akkurat feilen, men det ser jo ikke ut som 'brukernavn' kommer fram til mysql ihvertfall siden den avviser 'nobody'. og når du skriver "IP" i eksemplene, så mener du den 192.168.... adressa som du postet i et av de første innleggene, ikkesant? Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 Noe galt er det et sted hehe, På mySQL serveren bruker jeg lokal ip 192.168.. Mens når jeg skriver IP så mener jeg ekstern IP 79.... som er den jeg må bruke for å kontakte serveren "utenfra" Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 (endret) Noe galt er det et sted hehe, På mySQL serveren bruker jeg lokal ip 192.168.. Mens når jeg skriver IP så mener jeg ekstern IP 79.... som er den jeg må bruke for å kontakte serveren "utenfra" 79.x.y.z er en router da, ok. det er noe annet rart her også, på det ene forsøket får du jo tilbake en feilmelding som sier at mysql ikke vil slippe inn 'nobody', mens du etterpå ikke får connecta i det heletatt. jeg gjetter noe sånt som at du har prøvd med feil ip og riktig brukernavn, feil brukernavn og riktig ip, men ennå ikke fått kombinert riktig brukernavn OG riktig ip, eller noe sånt ... så da er det nok i boks snart :-) Endret 7. desember 2009 av quantum Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 Heheh ja holder på å lete Lenke til kommentar
TeisL Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Har du prøvd å sette portnummer bak ip-adressen? Kan jo kanskje hende det hjelper her... 72...:3306 (eller annen port om du ikke kjører på det som skal stå som default...) Vet ikke om det løser ditt problem, men kan være verdt et forsøk i alle fall... Jeg har selv hatt litt problemer med enkelte rutere med port vidresendingen. Alt skal være satt opp riktig, men at den ikke fungerer som den skal. De ruterne jeg har slitt mest med det på er Jensen WebLink serien... Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 Yep har prøvd det også Ser ut som nå at jeg har fått skrevet selve php scriptet riktig og at den bare ikke vil connecte til mysql serveren. Men synes dette er rart da cs serverene klarer å koble til eksternt OG jeg klarer å koble til eksternt via terminal. Lokalt funker php scriptet(med å bytte ut ip ofc) Det er kun php eksternt til mysql som ikke funker. Og feilmeldingen jeg får (på 2 webhotell) er at den ikke kan connecte til selve IP adressen/domene(prøvd begge) Porten 3306 er åpen og er den jeg bruker til mySQL. Lenke til kommentar
nomore Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Det kan jo være at leverandøren av webhotellet sperrer utgående trafikk på port 3306. Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 ja jeg har tenkt på det samme, derfor fant jeg et gratis webhotell for å prøve derfra også. Men der for jeg også at den ikke klarer å koble til. Det står at de har støtte for PHP og MYSQL, men dette betyr vel kanskje ikke at de godtar det eksternt? Lenke til kommentar
nomore Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Nå trenger ikke dette å være tilfelle her, men eg ville vært skeptisk til enhver webhost som ikke filtrere trafikk inn/ut. Og det kan jo være slik at de sperrer trafikk ut, og at de ikke har fått forespørsler om å kunne bruke eksterne MySQL hosts før. Lenke til kommentar
Marensius Skrevet 7. desember 2009 Forfatter Del Skrevet 7. desember 2009 Ok, vel synes det var et godt forslag, jeg har tilgang til en server til,skal ta å installere httpd der og php støtte så skal jeg se,dersom det funker der så er det at de har stengt for trafikken. Takker for tipset Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Det er kun php eksternt til mysql som ikke funker.Og feilmeldingen jeg får (på 2 webhotell) er at den ikke kan connecte til selve IP adressen/domene(prøvd begge) Du må jo ha fått til kommunikasjonen minst én gang, ellers hadde du ikke fått feilmelding tilbake fra MySQL om at det var user 'nobody'@'localhost' som ble nektet adgang? De gangene når du får "connection denied" eller "cannot connect to ... " el. så har du ikke vært i kontakt, men når du får tilbake hvilket brukernavn som ble nektet tilgang, så må du vel faktisk ha snakka med mysql?? trur eg vaffal ... Lenke til kommentar
Ståle Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '-IP-' (4) in /home/,,,/public_html/phpoutput.php on line 6 Access denied for user 'nobody'@'localhost' (using password: NO) Først prøver den IPen, og når det ikke funker, faller den tilbake på localhost. Så det er noe gale med kommunikasjonen. Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Først prøver den IPen, og når det ikke funker, faller den tilbake på localhost.Så det er noe gale med kommunikasjonen. Det hørtes jo veldig betryggende ut ... man kan ende opp med å kjøre mot localhost dersom «noe» feiler, istedenfor en feilmelding? Lenke til kommentar
Ståle Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 (endret) Joa, men du må jo bekrefte at du har fått riktig kontakt. Hvis TS sender meg IPen sin, kan jeg se om jeg ihvertfall får kontakt. Endret 7. desember 2009 av Ståle Lenke til kommentar
quantum Skrevet 7. desember 2009 Del Skrevet 7. desember 2009 Joa, men du må jo bekrefte at du har fått riktig kontakt. Det er det mest sinnsyke jeg har hørt. Er dette en bug i mysql eller php? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå