MySQL Error – The Server Quit Without Updating PID File
Грешката “Сървърът приключи, без да актуализира PID файла” обикновено се появява, когато MySQL не се стартира правилно или се изключва неочаквано. Файлът PID (Process ID) е малък файл, използван от MySQL за проследяване на идентификатора на процеса, и обикновено се съхранява в директорията с данни на MySQL. Когато MySQL не може да създаде или актуализира този файл, това може да означава проблем с конфигурацията, разрешенията или други основни проблеми.
Предлагаме ви ръководство за отстраняване и отстраняване на тази грешка:
Често срещани причини за тази грешка
- Неправилна конфигурация на MySQL: Грешки в конфигурационния файл my.cnf могат да доведат до неуспешно стартиране на MySQL.
- Разрешения за файлове и директории: Неправилна собственост или разрешения за директориите или файловете с данни на MySQL.
- Проблеми с дисковото пространство: Пълният диск или ограниченото пространство на дяла, на който е инсталирана MySQL, може да попречи на стартирането на MySQL.
- Повредени таблици на MySQL: Повреди във файловете с данни на MySQL също могат да доведат до проблеми при стартирането.
- Множество инстанции: Ако няколко инстанции на MySQL или MariaDB се опитват да се стартират едновременно, те могат да влязат в конфликт помежду си.
Стъпка по стъпка за отстраняване на грешката
- Проверете дневника на грешките на MySQLДневникът на грешките често предоставя най-много информация за причините за неуспешното стартиране на MySQL. Намерете дневника за грешки на MySQL (обикновено mysql.err или mysqld.log):
cat /var/log/mysql/error.log
Потърсете конкретни грешки или съобщения, които показват защо MySQL е спряла.
- Проверете местоположението на файла PIDВ съобщението за грешка се споменава местоположението на файла PID. Проверете дали директорията на файла PID съществува и дали MySQL има разрешение да записва в нея. Проверете конфигурационния файл my.cnf, за да намерите очакваното местоположение на файла PID:
sudo nano /etc/mysql/my.cnf
Потърсете ред като:
pid-file = /var/run/mysqld/mysqld.pid
Уверете се, че директорията съществува:
sudo mkdir -p /var/run/mysqld
Задайте съответната собственост:
sudo chown mysql:mysql /var/run/mysqld
- Проверка на правата на файловете и директориитеУверете се, че MySQL има правилната собственост и права за директорията с данни и нейните файлове:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
Това дава на MySQL права за четене и запис в собствената ѝ директория с данни.
- Осигуряване на достатъчно дисково пространствоПроверете дали има достатъчно свободно място на дяла, където е инсталирана MySQL:
df -h
Ако дискът е запълнен, може да се наложи да освободите малко място, преди да рестартирате MySQL.
- Проверете за множество инстанцииАко е стартирана друга инстанция на MySQL или MariaDB, това може да доведе до конфликти. Спрете всички работещи инстанции:
sudo systemctl stop mysql
sudo systemctl stop mariadb
Убийте всички останали процеси на MySQL:
sudo killall -9 mysqld
- Възстановяване на таблиците на MySQLАко дневникът за грешки показва повреда на таблиците, опитайте да ги възстановите:
sudo mysqlcheck --all-databases --repair --user=root --password
Заменете root с вашето MySQL потребителско име.
- Отстраняване на проблеми с конфигурацията на MySQLАко има проблеми с конфигурационния файл my.cnf, опитайте да коментирате проблемните редове или да се върнете към конфигурацията по подразбиране.Направете резервно копие на текущия файл my.cnf:
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.backup
Коментирайте или премахнете потребителските настройки и рестартирайте MySQL:
sudo nano /etc/mysql/my.cnf
- Рестартиране на MySQСлед като направите необходимите промени, опитайте да рестартирате MySQL:
sudo systemctl restart mysql
Или за системи, използващи услуга:
sudo service mysql restart
Проверете състоянието на системата, за да се уверите, че тя работи:
sudo systemctl status mysql
- Преинсталиране на MySQL (крайна мярка)Ако нито една от горните стъпки не помогне, като крайна мярка можете да опитате да преинсталирате MySQL. Това може да доведе до загуба на данни, ако не е налично резервно копие, затова се уверете, че сте създали резервно копие на важните бази данни, преди да продължите:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
След това преинсталирайте MySQL:
sudo apt-get install mysql-server
Заключение
Грешката “Сървърът се прекрати, без да актуализира PID файла” може да бъде отстранена чрез проверка на конфигурационните файлове, проверка на разрешенията, осигуряване на достатъчно дисково пространство и коригиране на всички основни конфликти. Като следвате горните стъпки, би трябвало да успеете да установите причината за грешката и да накарате вашия MySQL сървър да заработи отново. Винаги не забравяйте да създавате резервни копия на базите данни, преди да правите големи промени или да преинсталирате MySQL, за да избегнете загуба на данни.