View Full Version : [PHP+MYSQL]Autentificazione e accesso database
Gacoment
27-04-2010, 14:45
Ragazzi avrei un problema ad accedere a un database che ho creato tramite php. Premetto che mi serve l’autentificazione in locale per un esame in cui simulo l’utilizzo di una piattaforma di gestione di un master universitario (visualizzazione annunci da parte del docente, visualizzazione del libretto da parte dello studente). L'ambiente di sviluppo è mac. Ho studiato in passato sql, ma mai avuto occasione di mettere in pratica le teorie studiate. Quando provo a connettermi al database il messaggio di errore che il browse visualizza è :
Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/Marchintosh/Sites/EP/checklogin.php on line 16 Warning: mysql_connect(): No such file or directory in /Users/Marchintosh/Sites/EP/checklogin.php on line 16 cannot connect
La linea 16 si riferisce a questa istruzione : mysql_connect("$host", "$username", "$password")or die("cannot connect");
Credo di aver configurato al meglio il file php.ini però non riesco a capire se il problema è relativo al codice o relativo alla configurazione di questo file.
Vi posto anche il codice di tutto quello che ho fatto per la login insieme al database : qui (http://b4.s3.p.quickshareit.com/files/epd39db.zip)
Vi ringrazio anticipatamente per i vostri consigli in merito.
Sembra che il sock del server mysql al quale tenti di accedere non esista...
o riconfiguri il php.ini specificandogli il path corretto del socket
mysql.default_socket = /tmp/mysql.sock
(ovviamente sostituisci /tmp/mysql.sock con path del socket del tuo pc, ma questo è il valore di default per mysql installato in ambiente mac os)
altrimenti specifichi il path del socket come $host
mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
preso da php.net
If the MySQL client library tries to connect to the wrong local socket, you should set the correct path as in your PHP configuration and leave the server field blank.
Gacoment
27-04-2010, 17:31
si la variabile già era inizializzata così e ho provato con mamp e ho usato questa guida che dice la stessa cosa insomma ma non va :\ http://marshallthompson.net/uncategorized/mamp-socket-error-no-such-file-fix
Invece mettendo la variabile host come tu mi hai indicato mi dice:
Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Users/Marchintosh/Sites/EP/checklogin.php on line 17 Warning: mysql_connect(): [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servn (trying to connect via tcp:///tmp/mysql:3306) in /Users/Marchintosh/Sites/EP/checklogin.php on line 17 Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Users/Marchintosh/Sites/EP/checklogin.php on line 17 cannot connect
Questa linea 17 si riferisce al campo password per mysql.
sembra che stia tentando di connettersi comunque via tcp, invece che via socket...prova ad usare
localhost:/tmp/mysql.sock ( o qualsiasi sia il path del sock ) come host...
se hai dubbi su quale sia il path del socket apri una finestra del terminale e digita ps aux | grep mysql | grep socket
dovrebbe restituirti una cosa simile a _mysql 651 0,0 1,0 2517196 21344 ?? S 11:15am 0:00.10 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/MacBook-di-Tiziano.local.err --pid-file=/usr/local/mysql/data/MacBook-di-Tiziano-Faion.local.pid --socket=/tmp/mysql.sock --port=3306
e vedrai qual'è il socket che sta usando il tuo server mysql
Gacoment
28-04-2010, 11:34
Aspetta ma il problema è che la path che mi segnala io effettivamente non la ho. Nessun file sock, ma non basta avere mamp per far partire mysql? Devo installarlo anche di mio?
Cmq ora ho cambiato il riferimento al .sock che risiede nella cartella mamp e ora sembra andare.
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Users/Marchintosh/Sites/EP/checklogin.php on line 27 Attenzione username o password errati .
Che mi stampi che sono errati mi trovo, ma perchè mi da anche un warning sulla riga : $count=mysql_num_rows($result); ?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.