Avatar billede swaxi Nybegynder
05. februar 2003 - 18:48 Der er 15 kommentarer og
1 løsning

RH 7 og mysql

jeg er i gang med at geninstallere min server. nu er der en fejl i red hats distribution således at mysql ikke virker out of the box. jeg får en fejl meddelelse, der siger :

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

nuvel. jeg kan huske at det også skete sidst jeg installerede rh 7, og efter at have læst mig gennem diverse newsgroups, fandt jeg ud af at det er noget med en fejl i rpm'en (noget med nogle brugerrettigheder) jeg kan også huske at jeg fandt en ret simpel løsning (sikkert noget med et chmod eller noget lignende) sidste gang, men jeg kan bare ikke huske hvad jeg gjorde og jeg kan heller ikke finde det sted hvor der stod hvordan man skulle klare problemet.

anyone ?

(og jo ... jeg har kørt up2date, så det er nyeste version, men det ændrer ikke noget)
Avatar billede _darkstar_ Nybegynder
05. februar 2003 - 21:11 #1
Lav en ps axguwww| grep mysql og check hvad for bruger mysql kører som.

Derefter skal du checke at /var/lib/mysql eksisterer og er ejet af samme bruger (med skriveret til kataloget).
Avatar billede swaxi Nybegynder
05. februar 2003 - 23:25 #2
jeg er lidt grøn i *nix :
root      5986  0.0  1.9  1704  600 pts/0    S    23:20  0:00 grep mysql

så den ejes af root, formoder jeg ...

/var/lib/mysql findes og jeg har lavet en chmod 777 på det ... er det ikke nok ?
Avatar billede _darkstar_ Nybegynder
05. februar 2003 - 23:45 #3
Det burde være nok til at få den startet.

Det som du fandt ovenfor var ikke din mysql-process - den kører nok ikke, hvilket måske ikke er underligt, siden at den ikke kan få lov til at oprette den socket, som den skal bruge for at snakek med andre programmer.

Mao. genstart maskinen og se om den kører. Du kan bruge denne linie:

ps axguwww| grep mysql | grep -v grep

Så er det kun mysql (og andre processer der hedder noget med mysql - undtagen grep), der dukker op.

Hvis den kører, så check hvem der ejer filerne i det katalog som du lige har chmod'et. Sæt ejeren i overensstemmelse med det og kør en

chmod og-w /var/lib/mysql
Avatar billede swaxi Nybegynder
06. februar 2003 - 01:11 #4
jeg ved at den ikke kører ... den kan ikke starte (det er vistnok det der er problememt ...)

hvordan checker hhv. sætter jeg ejerskab ?
Avatar billede swaxi Nybegynder
06. februar 2003 - 03:44 #5
hum ...
    #cd /var/lib/
    #ls -l
    drwxrwxrwx    2 mysql    mysql        1024 Dec 16 13:43 mysql
så den ejes af mysql, hvilket vel skulle være ok ? eller ?

jeg har prøvet at skifte ejerskabet til nobody:nobody ... og jeg har sat chmod 7777  ... intet virker mysql restart giver stadig samme fejl ...
Avatar billede _darkstar_ Nybegynder
06. februar 2003 - 11:07 #6
Du skal bare køre en

chown mysql.mysql /var/lib/mysql

og

chmod og-rw /var/lib/mysql

Så burde den altås kunne køre.

Hvis den ikke gør det, er det fordi at der er andre fejl. Kig i loggen og lad høre hvad der står.
Avatar billede swaxi Nybegynder
06. februar 2003 - 13:11 #7
[root@olejkomplexet lib]# chown mysql.mysql /var/lib/mysql
[root@olejkomplexet lib]# chmod og-rw /var/lib/mysql
[root@olejkomplexet lib]# mysql
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

... iøvrigt har før det afinstalleret alle mysql prms (mysql, mysql-devel, mysql-server, php-mysql) og geninstalleret dem via up2date, så installationen burde vel være iorden ???
Avatar billede swaxi Nybegynder
06. februar 2003 - 13:19 #8
[root@olejkomplexet /usr]# cd /usr ; /usr/bin/safe_mysqld &
[1] 1677
[root@olejkomplexet /usr]# Starting mysqld daemon with databases from /var/lib/mysql
030206 13:14:51  mysqld ended
[1]+  Done                    /usr/bin/safe_mysqld
[root@olejkomplexet /usr]# more /var/log/mysqld.log
030206 13:14:50  mysqld started
030206 13:14:51  Can't start server : Bind on unix socket: Permission denied
030206 13:14:51  Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
030206 13:14:51  Aborting

030206 13:14:51  /usr/libexec/mysqld: Shutdown Complete

030206 13:14:51  mysqld ended
Avatar billede _darkstar_ Nybegynder
06. februar 2003 - 13:48 #9
Check lige at serveren ikke kører allerede.
Avatar billede swaxi Nybegynder
07. februar 2003 - 15:39 #10
ehm nej ... det gør den ikke .. igvert fald kan jeg ikke se den hverken med
    ps axguwww| grep mysql | grep -v grep
eller
    top

... :/
Avatar billede swaxi Nybegynder
07. februar 2003 - 17:09 #11
ok ... status ... jeg prøvede at compile følgende c-kode :
    http://www.linux-magazine.com/Readers/Forum/00000163?expand_all=1
når jeg kører den, fremkommer der en mysql.sock (filstørrelse 0) i /var/lib/mysql/mysql.sock
på denne laver jeg følgende to kommandoer :
    chmod 777 mysql.sock
    chown -R mysql:mysql mysql.sock

så skriver jeg
    /etc/init.d/mysqld start

og den svarer lige så pænt med
    Starting MySQL:  [  OK  ]

en ls afslører at mysql.sock nu er forsvundet fra /var/lib/mysql/
og kommandoen mysql giver
    ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)


... jeg bliver vanvittig af det her ...
Avatar billede mfalck Praktikant
08. februar 2003 - 22:29 #12
mysql kommunikerer med sig selv igennem en socket - og de forskellige distributioner smider dem forskellige steder - nogle i /var/lib/mysql/mysql.sock og andre i /tmp/mysql.sock. Du skal gøre følgende:

$ find / -name mysql.sock
(mit gæt er at den ligger i /tmp/mysql.sock)

$ cd /var/lib/mysql/
$ ln -s /path-som-find-gav/mysql.sock

og så burde det virke
Avatar billede swaxi Nybegynder
09. februar 2003 - 17:19 #13
mfalck -> tak for dit svar, men så meget vidste jeg allerede.

jeg har lavet en find, og mysql.sock er ikke eksisterende på mit system (eller *.sock for den sags skyld) jeg er også sikker på at HVIS den fandtes skulle den såmen nok ligge i /var/lib/mysql/ eftersom jeg har kigget efter i my.cnf og sikret mig at det er den path, der står der.
Avatar billede swaxi Nybegynder
10. februar 2003 - 02:37 #14
efter at have prøvet _alt_ 10 gange, fandt jeg fejlen.
sagen er den at mit /var/ dir havde ejerskabet lp:lp
det ændrede jeg til root:root (og satte også chmod 777 /var)
gjorde iøvrigt det samme med /var/lib/ og /var/lib/mysql/ for lang tid siden, men jeg havde lige overset /var/

sikke noget ged. siden _darkstar_ gjorde en hæderlig indsats for at hjælpe mig, får han pointene.
Avatar billede _darkstar_ Nybegynder
10. februar 2003 - 08:55 #15
Du bør altså ikke have kataloger liggende rundt omkring med mode 777. Det er noget rigtig skidt.
Avatar billede mfalck Praktikant
10. februar 2003 - 08:58 #16
jeps - darkstar har ret - sæt dem til 755 i det mindste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester