PDA

View Full Version : MySql - Apache e connessioni dal web


Schummacherr
12-09-2005, 22:51
Ciao a tutti..Ho bisogno di un aiutino..

Non ho trovato una sezione adatta quindi ho postato qui,se i moderatori ritengono che sia meglio spostare..nessun problema :)

Vi espongo il mio problema...

Ho un database mysql in locale e faccio girare apache e mysql da easy php.
Fin qui tutto ok,il pc è in listening sulla porta 80 e collegandomi al mio host riesco a vedere le cartelle in locale (nella cartella www di easy php).

Anche con il database tutto ok..se faccio una query via php (ad esempio un semplice status del server) funziona tutto...ma solo in locale!

Se io uppo il file .php con lo script per lo status del server o qualsiasi cosa che si debba collegare al Db non funziona..Uso come hosting altervista,ad un certo momento mi era venuto il dubbio che non supportasse Db esterni.Ma ho provato a caricarne uno su un servizio di hosting Db gratuito e si collega dal mio sito.
A questo punto il problema è tra il web e il mio pc.

Premettendo che: ho disattivato tutti i firewall (compreso quello di win),non sono dietro router,non sbaglio host,username e pass e il pc è in listening alla porta 80 ..dove potrebbe essere il problema?

Mi sto scervellando ma non ci riesco proprio :(

Grazie a tutti

Schummacherr
13-09-2005, 20:42
Nessuno? :(

MM
13-09-2005, 21:35
Vediamo se nella sezione Web hai più risposte ;)

Schummacherr
13-09-2005, 22:05
Ti ringrazio, non sapevo proprio dove postarlo..in web,generale,programamzione :/ :)

CH1CC0
15-09-2005, 01:18
un check:

hai provato a collegarti al tuo account mysql da un altro pc?

Mi spiego meglio: gli account di base creati su mysql, hanno come estensione (quella dopo la @) localhost.
Se è così, ti potrai collegare al tuo server solo dalla macchina stessa.
Se invece sostituisci localhost con "*", il problema si potrebbe risolvere.

Spero di aver capito il problema.

Schummacherr
15-09-2005, 20:51
Non so se hai capito tu,di certo non ho capito io :D :D :D

Allora..tu dici di provare a collegarsi al Db da un altro pc della stessa rete locale..o da un pc via web?

Perchè se inetndi la seconda cosa,ti dico subito che non si riesce..E non saprei neanche dove modificare questo @localhost :mbe: :D


Grazie per l'aiuto :)

CH1CC0
16-09-2005, 17:35
Non so se hai capito tu,di certo non ho capito io :D :D :D

Allora..tu dici di provare a collegarsi al Db da un altro pc della stessa rete locale..o da un pc via web?

Perchè se inetndi la seconda cosa,ti dico subito che non si riesce..E non saprei neanche dove modificare questo @localhost :mbe: :D


Grazie per l'aiuto :)

Benissimo... da quello che leggo, potrebbe essere la via giusta.
A questo punto mi spiego meglio.

MySQL funziona con un sistema di query strutturate inviate da client a server.
Per inviare una query, il client deve "loggarsi" sul server, eseguire la query ed attendere il risultato (prima di "sloggarsi").
La prova del 9, si effettua con una connessione da un altro pc (sia via internet, sia via LAN) verso il server.
Per poterti loggare (senza utilizzare l'utenza root che potrebbe essere pericoloso) dovresti creare un'altra utenza con i soli privilegi sul db in questione (non sul db mysql che contiene utenti, privilegi & co).
Se usi phpmyadmin, la cosa non è troppo complicata, ma quello a cui devi fare attenzione è che devi creare un utente così:

nome_utente@*

il nome_utente lo scegli tu, mentre il "*" dopo la chiocciola, sta ad indicare che chiunque, da qualsiasi macchina, si possa loggare con quell'utente.

Spero di esserti stato d'aiuto.

Schummacherr
16-09-2005, 18:52
Allora...mi sei stato di aiuto perchè ho imparato una cosa nuova..però ancor anon funziona.

Ti riassumo cosa ho fatto..prima di tutto ho usato questo file php (mi pare sia giusto) per vedere se si connetteva al db


<?php

$db_user = "prova"; //your sql username goes here
$db_pass = "prova2"; //your sql password goes here
$db_name = "l2jdb"; //your database name goes here
$db_serv = "localhost"; //the address of the database goes here

$res = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Coudn't connect to [$db_serv]");

?>


Al posto di localhost ho provato anche il mio host (uso no-ip avendo ip dinamico..funziona correttamente per quando riguarda il resolv dell'host) ma non funziona.

Nonostante io abbia settato come hai detto tu un account con i privilegi prova@* non si collega restituendo il seguente errore


Warning: mysql_connect(): Accesso non consentito per l'utente: 'prova'@'localhost' (Password: SI) in c:\programmi\easyphp1-8\www\1.php on line 8
Coudn't connect to [localhost]


Qui sembra che insista con @localhost :muro:

Se invece provo a collegarmi con l'utente root senza password o con password funziona.. :( ..sempre se nel file php uso localhost..se metto il mio host non funziona..


Grazie per l'aiuto ;)