
Когато работят с MySQL, често срещан проблем, с който разработчиците често се сблъскват, е съобщението за грешка „mysqld_safe Directory '/var/run/mysqld' за UNIX сокет файл не съществува”. Това може да бъде обезпокоително, особено когато вашите рутинни задачи разчитат в голяма степен на тази широко използвана система за управление на релационни бази данни с отворен код. Тази грешка обикновено показва, че има проблем с директорията, където MySQL съхранява своя сокет файл. Тук ще разгледаме как този проблем може да бъде решен, ще анализираме решението стъпка по стъпка и ще проучим някои от функциите и библиотеките, които влизат в действие.
Защо възниква този проблем? Проблемът възниква, когато MySQL сървърът не може да намери директорията /var/run/mysqld. Това обикновено е мястото, където MySQL съхранява своя UNIX сокет файл, който е от решаващо значение за локалните връзки. Ако по някаква причина тази директория липсва, тогава MySQL не функционира по предназначение.
systemctl start mysql
Тази грешка възниква, когато се опитате да стартирате MySQL сървъра с горната команда. Причината за този проблем е липсата на директорията /var/run/mysqld.
Решение
Решението на този проблем е съвсем просто. Всичко, което трябва да направите, е да създадете директорията, където MySQL иска да съхранява сокет файла. Следните команди ще направят точно това:
mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld
Първият ред използва командата 'mkdir -p' за създаване на директорията /var/run/mysqld. Опцията '-p' казва на системата да създаде родителски директории, ако е необходимо.
Вторият ред 'chown mysql:mysql /var/run/mysqld' променя собственика и групата на директорията /var/run/mysqld на mysql, което е потребителят и групата, под които работи MySQL сървърът.
Разбиране на SQL кода
За да разберете и приложите решението, трябва да сте запознати с използваните функции и как те взаимодействат. Тук ще ги обясним подробно.
- mkdir: Тази команда, както е посочено по-горе, означава „make directory“. Използва се за създаване на директория. Опцията '-p' в командата означава, че тя също така ще създаде всички родителски директории, ако е необходимо. Например, ако '/var/run/' не съществува, той също ще бъде създаден.
- хапка: Тази команда означава „смяна на собственика“. Използва се за промяна на собственика и групата на файл или директория. „mysql:mysql“ означава, че сървърът трябва да промени собственика на потребител „mysql“ и групата на „mysql“ за директорията „/var/run/mysqld“.
Включени библиотеки и функции
1. MySQL сървър: MySQL сървърът е централен в тази дискусия, тъй като проблемът се върти около него. Той използва UNIX socket файла, съхранен в /var/run/mysqld, за обработка на локални връзки.
2. UNIX/LINUX: Тук също имаме работа с UNIX команди. Това са основни компоненти на всяка LINUX система и помагат при създаването на директории и присвояването на разрешения на сървъра.
Като разберете основната причина за тази грешка и командите, използвани за коригирането й, можете лесно да осигурите гладка работа на вашите MySQL сървъри. Ако срещнете подобни грешки в бъдеще, процесът на отстраняване на неизправности ще бъде много по-рационализиран и по-малко плашещ.