Can't connect to local MySQL server

Can't connect to local MySQL server

Hozzászólások

Hasonló hibába futottam bele hétfőn, alapos utánaguglizás után sikerült megoldani. Azért a topic-ban szerzett tapasztalatok is segítettek.

Van egy Hasolnó problémám, nekem is a MySQL-el.
Nem tudok csatlakozni.
A httpd error logja így néz ki:
[code:1:e664b780e5]
[client 127.0.0.1] PHP Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /var/www/html/connect.php on line 3
[/code:1:e664b780e5]

parancssorban meg tudok csatlakozni.
A PHP kód:

[code:1:e664b780e5]
<?php
include('vars.php');
$connect = mysql_connect($host, $username, $pass) or die('Nem sikerult csatlakozni :-(');
mysql_close($connect);
echo"Sikeres csatlakozas :-)";
?>
[/code:1:e664b780e5]
Termeszetesen sajnos a nem sikerult csatlakozni uzenetet kapom.

Bele akatam nézni a logban megemlített file-ba (/var/lib/mysql/mysq.sock) de nulla, byte-t foglal és nem lehet megnyitni...
Van valakinek tippje, hogy mi lehet a probléma?
Előre is kössz.

letezik ez a file?
/var/lib/mysql/mysql.sock
mert erre panaszkodik.

Igen létezik, csak nulla byte-os, és ha mc-ben egy F3-at nyomok rá akkor ezt az üzenetet kapom:
[code:1:0de09ab678]
Nem sikerült megnyitni a(y) "mysql.sock" fájlt.
Nincs ilyen eszköz vagy cím (6)
[/code:1:0de09ab678]

Nalam ha meg akarom nyitni, akkor 45-os hibaval szall el (Operation not supported), szoval igazabol talan a jogosultsag ami kuklombseg lehet. Nalam srwxrwxrwx. Esetleg talan serult lehet a file?Tobbet sajnos nem tudok segiteni.
Talan a mysql_config parancs tud.

És a mysql_config -on belul mit adjak meg?

En a --socket kapcsolora tippelnek, hatha nem tokeletes a sock file.

És nincs valami tipped, hogy hogyan tudnék életel lehelni bele?

Sziasztok,

A napokban telepitunk egy gepre Fedora Core 3-at. Ugy gondoltam, hogy jo lenne bongeszon keresztul nezni az iptables logjat.

Letoltottem es felraktam az iptables_logger_v0.4-et (www.gege.org/iptables/). Elinditottam a Mysq-t, vegigcsinaltam az adatbazis es felhasznalok letrehozasat, ahogy a dokumentacioban irja. Tehat a Mysql mukodik es letezik az adatbazis.

Ha egy masik geprol bongeszovel akarom latni akkor a kovetkezo hibauzenetet kapom:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

Rakerestem az Interneten de sajnos a 13-as hibauzenetre senki sem tudot erdemleges megoldast (az a 13-as a zarojelben lenyeges).

Jo, hogy allitolag a tegnapi nap volt az ev legrosszabb napja megsem irnam az o szamlajara.

Meg anyit, hogy a SElinuxban kikapcsoltam mar a mysql daemon figyeleset.

Elore is koszonok minden otletet.

Sziasztok
kbela

Nézd meg az alábbit
mysqladmin variables | grep -i sock

Ez megmutatja hogy a szerveren hol van a socket, ha ez nem ott van ahol a progid keresi állitsd át
az /etc/my.cnf -ben a [mysqld] részben

Vagy az indító szkriptben

Sziasztok...asszem elkövettem egy blődséget és nem tudom javítani...
Szerettem volna ha a proftpd a mysql-ból veszi az azonosításhoz szükséges user nevet és jelszót...
Igazából csak kiváncsi voltam, hogy megy-e... Alapból a lampp-ot használom...használnám...
A következő parancsot adtam be, azóta nem megy sem a lampp-pal a mysql, sem a forrásból feltett :(

mysql -e "grant select on proftpd.* to proftpd@localhosdt \ indentified by 'secret';"

Sajna lövésem sincs, mit állított el ez a parancs, így azt sem tudom, hogyan orvosolhatnám...Ha indítom a lampp-ot ez a ps ax idevonatkozó része:

3905 pts/1 R 0:04 /bin/sh /opt/lampp/bin/mysqld_safe --datadir=/opt/lam
24717 pts/1 Z 0:00 [mysqld_safe] <defunct>
24719 pts/1 R 0:00 tee -a /opt/lampp/var/mysql/pomm.err

Ha a forrásból feltett mysqlt indítom végtelen ciklusba ugrik és állandóan leáll, majd újraindítja magát, amíg kill -9 pid-del ki nem lövöm...

Plíz help, hogy ne kelljen reinstall-t csinálnom :)
A rendszer slackware-10.1

Köszi előre is: pomm

Koszonom cstt.

Sajnos nem ott van a hiba.

Pont ugyanazt a helyet mondja mint a program.

Mas otletek?

kbela

eloszor is legyen jelszo autentikacio a mysql root felhasznalonak
masodszor nem indentified, hanem identified
harmadszor: mi az a \ az 'indentified' elott.
vegul: ez semmi olyat nem tesz, ami elrontana a mysql-edet.

t

Valahogy beállítottad hogy hol van az sql kiszolgáló.
Próbáld meg úgy hogy az ipcím a tényleges ipcím legyen.

Tipp: Ha a kliens verziója régebbi lenne a szerverénél - előfordul ilyen - akkor is lehet ilyesmi. Ez esetben a jelszót kell régi formátumúvá konvertálni. Try it.

Szia,

A tenyleges IP cimet hasznaltam:

http://192.168.101.9/firewall/test.php

A verziok pedig egyformak.

kbela

Az identified-et elgépeltem, de nem a parancsban, ahnem itt :) ... a \ jelet én sem értettem, ( nem vágom a mysql-t :O ) de egy linuxos könyvből vettem a parancsot...
Nos, ha szted nem ilyetén gond van (az az a parancs elszabott volna vmit ), akkor csak a dist-upgrade lehet a ludas ( 10.0 ---> 10.1 ) mert ezt a kettőt csináltam, mielőtt észrevettem, hogy nem müxik...
Köszönöm a gyors help-et, visszarakom 10.0-ra...

Alapból nem szokott engedélyezve lenni mysql szervereken, hogy tcp-n figyeljen. configban nézz utána, szerintem ezért nem tud kapcsolódni.

Szia djula,

Egy kicsit bovebben tudnal-e valamit mondani artol, hogy milyen config-ot kell modositani?

Az /etc/http/conf.d/auth_mysql.conf-ra gondolsz?

Mit kel modositani?

Koszonom.
kbela

A mysql server configjara gondolok. Valtozo, hogy hol van, lehet pl /etc/mysql/my.cnf vagy ilyesmi. Most eppen csak win van elottem, es nem is tudok innen sshzni, de biztos megtalalod. :)
ezt a reszt keresd benne:
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

A skip-networking legyen kommentezve.

a my.cnf-ben a skip-networking sort kommentezd ki...

Sajnos rossz hirem van.

Nalam a my.cnf-ben nincs is benne a skip-networking.

Tehat valami mas baja van.

Mindenesetre koszonom mindenkinek aki segitet es fog meg segiteni (remelem). Sajnos SQl-ben teljesen nulla vagyok.

kbela

Es a mysql szerver ugyanazon a gepen fut, mint az apache/php?
Ha igen, akkor probald ugy beallitni, hogy localhost-ra kapcsolodjon a php script, es ne ip-re.

Igen ugyanazon a gepen fut.

Probaltam a localhostal is es az IP cimel is, az eredmeny ugyanaz.

kbela

tibyke@home tibyke $ grep -i bind /etc/mysql/my.cnf
#bind-address = 127.0.0.1

siman mysql client-el tudsz csatlakozni?
# mysql
# mysql -h localhost
stb.

Valasz az utolso ket otletre:

A my.cnf-ben nincs bind-address = 127.0.0.1, De ha berakom akkor sem megy.

Igen djula siman mysql client-el tudok csatlakozni.

kbela

Akkor pedig a php-vel van a gond. a mysql_connect -be hostnak ha localhost-ot irsz, biztos, hogy mennie kell.

Igazan utalok rossz hirt adni, de sajnos nem megy. Ide masolom a test.php allomany tartalmat:

<?php
error_reporting( E_ALL );
print("Starting ...<br>");
$C = mysql_connect( "localhost", "root");

$Result = mysql_query("select * from iptables.ports");
print("Looking for errors:".mysql_error()."<br>");

while ( $Row = mysql_fetch_array( $Result ))
print( $Row["name"]."|".$Row["description"]."<br>");
mysql_close( $C );
?>

Djula minden esetre is koszonom.

kbela

Sziasztok,

Meg van a megoldas.

Abban a pillanatban, hogy setenforce 0-ot adtam neki elindult.

Az erdekes az, hogy en a SElinuxbol mar egyszer kikapcsoltam a mysql-t (es kikapcsolva is volt egesz vegig).

Most mar csak azt kell megkapjam, hogy mit kell a SElinuxban konfiguralnom.

Minden jot es koszonom mindenkinek aki megprobalt segiteni.

kbela

ha egy gepen fut a mysql es atnevezed a gepedet, majd restart, azt nagyon nem turi a mysql. ilyenkor szoktak ilyen gondok lenni.
jaa! az apache sem kommazza.

gep atnevezes elott lehetoleg minden szolgaltatast allitsunk le, aztan izles kerdese, hogy reboot vagy:
hostname ujgepnev

ps.: azert ekkor a reboot biztosabb.

Hy!
Kiadtam a hostanme davs.org parancsot, erre: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (111)
Egyébként csomagból raktam fel Slacki alatt. Az install után kell még vele valamit csinálni? (Tudom, hogy kell, csak nekem régebben nem ment, hátha a Ti verziótok jó...)

" '/var/run/mysql/mysql.sock' (2)"

Vagy a sock fájl nem ott van.
/tmp könytárba sincs?
A mysql configjába ird át hogy ott legyen!

Hy!
A config file a /etc/my.cnf . Simán /tmp/mysql.socket -re írjam át?

Átírtam tmp-re, erre megint: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Ebbe a mysql.sock-fileba nem kell írni semmit? Hozzam én létre, vagy létrejon magától?

Igen, az rc.mysqld-t futtattam, ezt írja ki: root:/etc/rc.d# Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysql/mysql.pid
060220 16:08:06 mysqld ended

Egyébként ha itt Start-tal elindítom, akkor is le szokta állítani a pid file-ból. Csatlakozni egyébként már tudok, csak nem tudok új adatbázist/táblát létrehozni. Természetesen rootként jelentkezek be: mysql -u root -p
Erre: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)

Ezért kérdeztem, hogy azzal a mysql.sock file-val mit kell csinálni.

Par dolog:
Eloszor is a php.ini-ben meg kell szinten adni, hogy hol a socket.
Masodszor a my.cnf-ben ugyanoda kell mutatnia.
Harmadreszt a /var/lib/mysql konyvtarnak a mysql tulajdonaban kell lennie es nem a root-eban. (persze ha mysql tulajdonban fut)
Negyedreszt a socket allomanyok ugye socketek es nem file-ok, marmint abban az ertelemben mint a textallomanyok. Ezert rohadt folosleges F3-akat nyomoritani rajuk.
Otodreszt: Ne hasznalj MC-t. Mert csak butit es nyomorba dont. :) Hidd el a paracssor jobb.

Nem írtam, hogy mc-t használok...
A /etc/apache/php.ini-ben megadtam, hogy a socket a /var/run/mysql/mysql.sock, a my.cnf-ben is ez van. A /var/lib/mysql mappa és annak almappái/konyvtárai immáron a mysql tulajdona..
Ha elindítom a /etc/rc.d/rc.mysql start -ot, akkor csatlakoznik, de le is zárja:
root:/etc/rc.d# ./rc.mysqld start
root:/etc/rc.d# Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysql/mysql.pid
060220 18:06:43 mysqld ended

Hy!
az rc.mysqld start után a ps fax | grep mysql kimenetében benne van...3mp-ig, aután jon a STOPPING server from pid file /var/run/mysql/mysql.pid
060220 18:32:52 mysqld ended
De lehet, hogy az a leírás, amely alapján csináltam nem megfelelo, ezért elmondhatnátok, hogy mit kell csinálni azután, hogy telepítettem a mysql-t...

/var/log/mysqld.log:
060219 20:30:23 mysqld started
060219 20:30:23 Can't start server : Bind on unix socket: Permission denied
060219 20:30:23 Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
060219 20:30:23 Aborting

060219 20:30:23 /usr/libexec/mysqld: Shutdown Complete

060219 20:30:23 mysqld ended

Tehát nincs jogosultsága...Pedig mindent rootként csinálok!

Ez segít? Mert én nem találtam benne semmit..
root:/var/lib/mysql# cat darkstar.err
060220 20:06:19 mysqld started
060220 20:06:19 InnoDB: Started; log sequence number 0 44002
060220 20:06:19 [ERROR] Can't start server : Bind on unix socket: Permission denied
060220 20:06:19 [ERROR] Do you already have another mysqld server running on socket: /var/run/mysql/mysql.sock ?
060220 20:06:19 [ERROR] Aborting

060220 20:06:19 InnoDB: Starting shutdown...
060220 20:06:22 InnoDB: Shutdown completed; log sequence number 0 44002
060220 20:06:22 [Note] /usr/libexec/mysqld: Shutdown complete

060220 20:06:22 mysqld ended

Ja, és a /var/lib/mysql a mysql user tulajdona, és o is indítota el a mysqld_safe-t

Hy!
Felraktam...Megy...Belépek root-ként mysql -u root -p, majd create database davs , utánna grant all privileges on davs.* to davs@localhost identified by 'jelszó' ;
Ezekután flush privileges, de PHP programol mysql-connect-tel nem tudom elértni a davs adatbázist, csak a test-et. Ja, és a phpmyadmin-t hogyan kell beállítani? a default.inc.php (vagy mi a neve) csináltam egy config.inc.php -t, ebben pedig beállítottam a név/jelszó párost. Akárhányszor elindítom, ezt írja ki:

Üdvözöl a phpMyAdmin 2.7.0-pl2

A phpMyAdmin megpróbált csatlakozni a MySQL szerverhez, de a szerver elutasította a kapcsolatot. Ellenőrizze a host, username és jelszó mezőket a config.inc.php fájlban, és bizonyosodjon meg róla, hogy ezek megfelelnek a MySQL szerver adminisztrátorától kapott információknak.
Hiba

MySQL jelzi: Dokumentáció
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Azért nem tudod megnyitni mert ez csak egy socket file. nem fizikai file. ezt a mysql csak komunikációra használja.
Legalábbis ma egész nap az említett problémával küzdök, de eddig nem sikerűlt megoldanom, de erre már rájöttem. sajnálattal látom, hogy nektek sem megy. ezek szerint azthiszem nem is a mysql-el van a baj hanem a php-vel. ennek még utánanézek.

Na szóval: megvan a megoldás és akár hiszitek akár nem nagyon egyszerű.
a lényeg az hogy én nem a világhálón keresztűl akarok komunikálni az apachom és a mysql között hanem gépen belűl. ehez php-t használok.

A megoldás a következő: ha elolvastad ezt a topicot találsz benne egy /tmp/mysql.sock
dolgot.
nos ez csinálta a galibát
-------------------/etc/my.cnf------------------------------------
#password = your_password
host = localhost
port = 3306
socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
#socket = /var/run/mysqld/mysqld.sock !!!!!nem jó

a socket ugyanoda hivattkozzon!
---------------/etc/php5/apache2/php.ini-----------------------
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /tmp/mysql.sock

tehát amint a három socket ugyanoda mutatott a konunikáció elindult.

remélem tudtam segíteni.

Na akkor én is beállok a sorba nálam se működik a mysql. Pontosoabban már nem. De erről kicsit késöbb elöbb a körölmények:

Ubuntu linux 5.10 mysql 5.018 + php 5.1.2 +apache 2.2 forrásból fordítva .Vas: AMD 750Mhz nforce2 768ram. Minden szép és jó voltegészen tegnap előttig amikortól (elöttem rejtélyes okből kifolyólag) már nem lehetett új adatokat bevinni. Csatlakozni igen, lekérdezni igen, de adatokat bevinni módosítani nem. A bűnös "természetesen" a socketet a phpmyadmin (ver:2.8.01) azt írja: #2002 - A szerver nem válaszol (vagy a helyi MySQL szerver socketje nincs rendesen beállítva)
A forumontalálható összes tippet kipróbáltammár: ellenőriztem mindhárom helyen a socket elérési utat, parancssorból indítottam és állítottam le a mysql-t hiba nélkül, a skip-networking rész kikommentelve...

Egyéb info a könyvárak mysql felhasználó tulajdonába vagyon, minden a manual szerint csinálva. És jó is volt kb 3 hétig aztán újraindítottam és most nem megy. F@szä :( Van valami ötletek?
Mivel nem szeretném minden újraindítás után ujratelepíteni a mysql-t.

Az, hogy a php my admin nem tud vele mit kezdeni az csak egy dolog, de tudsz egyébként dolgozni az adatbázissal, tehát tudsz pl uj rekordokat beszúrni konzólból. A mysql programon keresztűl.
Mert ha onnan megy akkor, nem a mysql a hibás hanem valamilyen beálítás. ha úgy sem megy akkor tényleg a mysql lehet valahogyan a bűnös.

Ezt nekem is sikrült emulálni anno egy RH8-on.
my.cnf
[mysqld] sekcioba->
skip-name-resove
segített. (Meg 1 nap gugle az error 2002-re...)
és még vmi:
var/lib/mysql tulajdonosa alapból root volt, mysqld-t mysql nevű user futtatja, de nem fér hozzá a socket-hez ...
chown -R mysql /var/lib/mysql

Hali,

Nekem az alábbi hiba jött elő Ubuntu Breezy alatt szerver módú telepítésnél, kb. 3 hónap zökkenőmentes futás után:


/etc/init.d/mysql[6630]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
/etc/init.d/mysql[6630]: ^G/usr/bin/mysqladmin: connect to server at 'localhost' failed
/etc/init.d/mysql[6630]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)'
/etc/init.d/mysql[6630]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Azt most hagynám, hogy egy csomó felesleges kört futottam (my.cfg ellenőrzése, debian.cnf ellenőrzése, bár ez a file sztem felesleges, a my.cfg-t kell jól megírni), míg végül a syslog-ból nem csak mysql-re szűrtem, hanem hagytam futni az egészet és ilyeneket találtam minden mysql indítási kísérletnél:


kernel: [5494682.590000] hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
kernel: [5494682.590000] hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=153699338, high=9, low=2704394, sector=153699336
kernel: [5494682.590000] ide: failed opcode was: unknown
kernel: [5494682.590000] end_request: I/O error, dev hda, sector 153699336
kernel: [5494685.633000] hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
kernel: [5494685.633000] hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=153699338, high=9, low=2704394, sector=153699336
kernel: [5494685.633000] ide: failed opcode was: unknown
kernel: [5494685.633000] end_request: I/O error, dev hda, sector 153699336

Innentől lett nekem büdös az egész és a /var/lib/mysql könyvtárat szépen elraktam /var/lib/_mysql néven, létrehoztam a /var/lib/mysql-t (chown mysql:mysql) majd futtattam egy /usr/bin/mysql_install_db és onnantól elindult a mysql. Mondjuk nekem szerencsém van, mert ez egy teszt szerver volt, de nem tudom, mit tud csinálni az, akinek éles adatai voltak (max a mentésből próbál visszajönni).

A jelenség okát nem tudom, csak tippelhetek, a helyi rendszergazda meg van róla győződve, hogy a világ Windows-on fut és néha lereseteli a szerver. Már ígértem neki kéz eltörést, ha még egyszer rányom a resetre vagy a powerre, de nem ijedt meg. B-/

hali!

Nehany dolog ami kimaradt:

4-es mysqlekben volt a skip-networking a configban ami csak a localhostrol erkezo kapcsolatokat engedi, ha kivulrol is akarsz scatlakozni, commentezd ki. 5os mysqlnel mar ip-t lehet megadni, mire
bindelodjon, s defaultbol 127.0.0.1 van benne.

socket vs tcp/ip

Nos, ha a mysqlhez akarsz kapcsolodni, es localhoston, akkor a kliens
lekeri (php, c, akarmi mind a mysqlclient libet hasznalja), h hol van a socket, es azon keresztul probalja elerni a mysqlt.

De ha kapcsolodaskor nem localhostot v 127.0.0.1-et irsz hanem mittom
192.168.1.1-et, akkor mar tcp/ip-n probal kapcsolodni a szerverhez,
megha az a lokalis gep is. Erdemes igy is megprobalni.

Debianban meg mysql frissiteskor tipikus hiba, h elb*szodik a socket,
en ilyenkor szoktam egy dpkg-reconfigure-t tolni, vagy:
apt-get remove-ot,
aztan konfigokat elment, majd letorli az etc-bol,
apt-get install
aztan konfigokat visszamasol.
Ezzel tobbnyire meggyogyul a socket problema.

Remelem adtam vmi tampontot.

Udv

Hogyan kell MySQL vagy MS SQL-hez Visual C++ 2005-ön keresztül kapcsolódni?

Valaki leírná pontról-pontra mit kell csinálni, telepíteni, beállítani ide vagy elküldené emailben: picurt@freemail.hu. Sajna nagyon nem akar összejönni és nagy szükségem lenne rá.

Köszi: sivagiri

Halisztok

Azt szeretném megkérdezni hogy hogyan tudnék egy távoli mysql-servere felcsatlakózni a MYSQL-Front program segitségével. Egy freebsd servere szeretnék felmeni de ezt a üzenetett kapom

SQL futtatási hiba [1130]. AZ adatbázis visszajelzése:
Host 'host-94-248-156-228-kablenet.hu' is not allowed to connect to this MYSQL server

Mit kellene beállítanom a serveren hogy feltudjak meni?

ellöre is köszönöm a segitséget

ehhez túl sok mindent szerintem nem nagyon lehet hozzáteni.... minden esetre a lényege annyi, hogy a host-94-248-156-228-kablenet.hu hosztról nincs engedélyezve az elérés.

Több mindent be lehet/kell állítani ehhez, de szerintem max annyir csinálj, hogy létrehozol egy tunnelt, és netre nem engeded ki a MySQL -t ;)