S-a pierdut conexiunea cu serverul MySQL, eroare de sistem: 111 (Programare, Php, Mysql)

Joe Torraca a intrebat.

Când încerc să mă conectez la bazele mele de date, primesc această eroare:

Lost connection to MySQL server at 'reading initial communication packet', system error:111

Iată codul meu PHP (este doar un test):

<?php
@session_start(); 
include(".conf.php");
print_r($conf);
$con = mysql_connect($conf['db_hostname'], $conf['db_username'], $conf['db_password']) or die (mysql_error());
mysql_select_db("aTableName", $con);
$prof = '000';
//$prof = $_GET['profile'];
$prof = addslashes(htmlentities($prof));
$result = "SELECT * FROM aTableName WHERE id = '$prof'";
$q = mysql_query($result, $con);
$qarr = mysql_fetch_array($q);
print_r($qarr); 
?>

Orice ajutor ar fi apreciat. Nu pot să-mi dau seama și mă deranjează foarte tare. Vă mulțumesc!

EDIT: Sunt găzduit pe GoDaddy, hosting și baze de date.

5 răspunsuri
David Schwartz

Gazda dvs. este greșită, portul este greșit, un firewall a blocat conexiunea sau serverul SQL nu rulează. 111 este „conexiune refuzată”. Puteți rezolva problema încercând să telnet la gazda și portul serverului SQL. Dacă asta funcționează, codul tău greșește gazda sau portul.

Dacă nu funcționează, verificați serverul SQL în sine. Dacă funcționează acolo, problema este rețeaua. Dacă nu funcționează acolo, înseamnă că serverul SQL nu funcționează.

Comentarii

  • Serverul funcționează pentru că mă pot conecta la el folosind PHPMyAdmin. Folosesc un Mac, așa că sunt destul de sigur că nu pot face telnet. –  > Por Joe Torraca.
  • Prin „serverul”, mă refer la serverul SQL (nu la serverul web). Și mă refer la faptul că ar trebui să încercați să telnet la gazda serverului SQL și la portul SQL de pe calculatorul serverului însuși. (Nu contează dacă sunt aceeași mașină fizică sau nu, procesul de testare este același). –  > Por David Schwartz.
  • Deci, fie serverul SQL nu funcționează, fie informațiile despre gazdă/port pe care le folosiți pentru a ajunge la el nu sunt corecte. –  > Por David Schwartz.
Alfabravo

Verificați fișierul my.cnf. Probabil că permite localhost să se conecteze, dar conf.php încearcă cu siguranță să se conecteze la IP-ul dvs. sau la 127.0.0.0.1. Încearcă cu localhost și, dacă funcționează și vrei să se comporte altfel, editează-ți fișierul my.cnf în directiva bind-address (schimbând-o cu IP-ul tău sau cu 127.0.0.1, poate, sau comentând linia astfel încât să nu se facă binding).

Oricum, atunci când vă conectați la mysql cu „localhost”, acesta folosește un socket în loc de o conexiune TCP, prin urmare, probabil că eșuează cu asta,

Comentarii

  • Îmi dă această eroare: Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) in /home/content/75/8274475/html/Tests/profile.php on line 7 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) –  > Por Joe Torraca.
  • Presupun că acesta este testul cu localhost ¿Ai repornit serviciul mysql? Și… dacă nu funcționează nici măcar cu repornirea, verificați acest fir de discuție cu unele configurări pe BD. serverfault.com/questions/128564/…  > Por Alfabravo.
Kevin

Am avut aceeași eroare. Încercam să accesez baza de date mysql de pe serverul 192.168.0.4 de pe o mașină client 192.168.0.47. Când am intrat în /etc/mysql/my.cnf și am schimbat bind-address = 192.168.0.4 (și am comentat 127.0.0.0.1) și am repornit mașina, mesajul de eroare a dispărut.

Comentarii

  • Am încercat acest lucru și s-a oprit întreaga aplicație. 🙁 –  > Por Ashfaq Muhammad.
Elminson De Oleo Baez

În cazul meu, am datadir=/media/sdc1/mysql și discul nu a fost montat. i Remount și restart mysql

neske

În cazul meu discul este plin. Trebuie să eliminați toate fișierele care nu sunt necesare.

Dacă ați eliminat, atunci trebuie să reporniți mysqld.

De exemplu: sudo service mysqld restart

Tags:,