Kada radite sa MySQL-om, čest problem sa kojim se programeri često susreću je poruka o grešci “mysqld_safe Directory '/var/run/mysqld' za UNIX socket fajl ne postoji”. Ovo može biti problematično, posebno kada se vaši rutinski zadaci u velikoj mjeri oslanjaju na ovaj široko korišćeni sistem upravljanja relacionim bazama podataka otvorenog koda. Ova greška obično ukazuje da postoji problem sa direktorijumom u koji MySQL pohranjuje svoju socket datoteku. Ovdje ćemo ući u to kako se ovaj problem može riješiti, secirati rješenje korak po korak i istražiti neke od funkcija i biblioteka koje dolaze u igru.
Zašto se javlja ovaj problem? Problem nastaje kada MySQL server ne može pronaći direktorij /var/run/mysqld. Ovo je obično lokacija gdje MySQL čuva svoju UNIX socket datoteku, koja je ključna za lokalne veze. Ako iz bilo kojeg razloga ovaj direktorij nedostaje, MySQL neće funkcionirati kako je predviđeno.
systemctl start mysql
Ova greška se javlja kada pokušate da pokrenete MySQL server koristeći gornju naredbu. Razlog za ovaj problem je nepostojanje direktorija /var/run/mysqld.
rastvor
Rješenje ovog problema je prilično jednostavno. Sve što trebate učiniti je kreirati direktorij u koji MySQL želi pohraniti datoteku socketa. Sljedeće komande će učiniti upravo to:
mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld
Prvi red koristi naredbu 'mkdir -p' za kreiranje /var/run/mysqld direktorija. Opcija '-p' govori sistemu da kreira roditeljske direktorije po potrebi.
Drugi red 'chown mysql:mysql /var/run/mysqld' mijenja vlasnika i grupu direktorija /var/run/mysqld u mysql, koji je korisnik i grupa pod kojom se MySQL server pokreće.
Razumijevanje SQL koda
Da biste razumjeli i implementirali rješenje, morate biti upoznati s funkcijama koje se koriste i kako one djeluju. Ovdje ćemo ih detaljno objasniti.
- mkdir: Ova naredba, kao što je gore navedeno, znači “napravi direktorij”. Koristi se za kreiranje direktorija. Opcija '-p' u naredbi znači da će također kreirati sve roditeljske direktorije prema potrebi. Na primjer, ako '/var/run/' ne postoji, također će biti kreiran.
- chown: Ova naredba je skraćenica za “promijeni vlasnika”. Koristi se za promjenu vlasnika i grupe datoteke ili direktorija. 'mysql:mysql' podrazumijeva da server treba promijeniti vlasnika u korisnika 'mysql', a grupu u 'mysql' za direktorij '/var/run/mysqld'.
Biblioteke i uključene funkcije
1. MySQL server: MySQL server je centralni u ovoj diskusiji jer se problem vrti oko njega. Koristi UNIX socket datoteku, pohranjenu u /var/run/mysqld, za rukovanje lokalnim vezama.
2. UNIX/LINUX: Ovdje se također bavimo UNIX komandama. Ovo su bitne komponente svakog LINUX sistema i pomažu u kreiranju direktorija i dodjeljivanju dozvola na serveru.
Razumevanjem osnovnog uzroka ove greške i komandi koje se koriste za njeno ispravljanje, možete lako osigurati nesmetan rad vaših MySQL servera. Ako naiđete na slične greške u budućnosti, proces rješavanja problema bit će mnogo jednostavniji i manje zastrašujući.
