"Не вдалося створити mysql основний процес: неможливо виконати: Немає такого файлу чи каталогу"


56

Я новачок на MySQL майданчику, тож потерпіть мене.

Я щойно закінчив оновлення 11.10 до 12.04.

Здавалося, все працює без жодної гикавки, і все моє програмне забезпечення та налаштування працюють нормально. Крім MySQL.

Коли я намагаюся:

sudo start mysql

Я отримую помилку:

start: Job failed to start

Де я можу діагностувати, в чому проблема? І (сподіваємось) - як розібратися?

(Я відключив автоматичний початок дотримуючись поради тут, якщо це має певне значення)


Оновлення 1:

Обидва виходи:

cat /var/log/mysql.err 
cat /var/log/mysql.log

порожні.

Вихід dmesg | grep mysql:

[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory

Оновлення 2:

Як зазначено нижче AWinter - здавалося, що MySQL зник автоматично після оновлення та його довелося перевстановити.

Відповіді:


48

Перевірте, чи було видалено пакунок mysql-server-5.1, схоже, він може зберігатися після оновлення. У мене була така ж помилка, і мені довелося очистити MySQL сервер 5.1 і 5.5, після чого перевстановити.

Спочатку зробіть резервну копію каталогу / var / lib / mysql /, щоб бути безпечною.

sudo cp -R /var/lib/mysql/ ~/mysql

Наступна очистка MySQL (це видалить php5-mysql та phpmyadmin, а також ряд інших бібліотек, тому будьте готові до повторної установки деяких елементів після цього.

sudo apt-get purge mysql-server-5.1 mysql-common

Видаліть папку / etc / mysql / та її вміст

sudo rm /etc/mysql/ -R

Далі переконайтеся, що ваші старі файли бази даних все ще є у / var / lib / mysql /, якщо вони не є, потім скопіюйте їх назад у папку, а потім - chown root: root

(запускайте їх лише тоді, коли файлів більше немає)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
sudo cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

Далі встановіть сервер mysql

sudo apt-get install mysql-server

Нарешті перевстановіть будь-які відсутні пакети, такі як phpmyadmin та php5-mysql.


1
Відмінно. Працював як шарм. Усі знову працюють. Одне зауваження: мені не довелося видаляти цей каталог sudo rm /etc/mysql/ -R- його просто немає в моєму випадку. У будь-якому випадку - на щастя, це була лише локальна установка для тестування Wordpress .. Задумайтеся, що буде на справжньому сервері o_O
radek

apt-get - перевстановіть встановлення mysql-server-xx зробив для мене роботу.
Ясіма

Це працювало для мене, але, мабуть, я мав би зробити це apt-get updateраніше, тому що він видалив голуб і php5-mysql. Я міг перевстановити їх лише після оновлення. Як тільки я це зробив, все знову працювало нормально.
AntonChanning

Я отримую -bash: cd: /var/lib/mysql/: Permission deniedта використовую sudo -iнавіть не працює.
Шарлотта

@LittleBigBot Я вніс зміни, які повинні це виправити.
AWinter


12

У мене був цей самий випуск, і для мене саме журнали InnoDB були іншого розміру, ніж очікував mysql, і під час оновлення мовчки вийшли з ладу.

У мене був власний файл конфігурації, який було вимкнено під час оновлення до 12.04, яке встановлювало розміри файлів журналу щось інше, ніж те, що конфігурація за замовчуванням.

Ви повинні видалити файли: / var / lib / mysql / ib_logfile *

Після відсутності файлів mysql тепер може запускатись та створювати свіжі файли журналів за замовчуванням.


Бінго. У нашому випадку dev змінив деякі параметри конфігурації для innodb (і ні він, ні я не знали, що це може спричинити проблему). Це завадило запуску mysql. Видалення цих конфігураційних файлів дозволило запустити MySQL.
gaoshan88

Бінго - змінив налаштування конфігурації для innodb_log_file_size.
tweak2

9

Більшість помилок з’явиться, запустивши сервер у багатослівному недемоновому режимі та переглянувши вихід:

sudo mysqld --verbose

7

У мене була така ж проблема, але жодна з наведених відповідей мені не допомогла. Отже, як остання надія, я спробував звільнити трохи місця на диску. Я просто видаляю непотрібні файли журналу з / var / log, що звільнило місце 2,5G. Тоді MySQL запустився нормально.


Так, це була і моя проблема. mysql не запускався під час завантаження, як це було раніше. Пізніше була інформація про систему, яка надає термінал; "Використання /: 95,1%" Отже, не було достатньо вільного місця для запуску mysql (та інших процесів). Мені потрібно було зробити чистку файлів, і mysql почався без проблем.
Screenack

Це був мій випадок. Очищення диска та Mysql починають працювати.
Сергій Романов

5

Іноді це трапляється, і хоча є кілька різних проблем, які можуть змусити mysql не запускатись, я напишу тут декілька найпоширеніших, про які я знаю:

ПРИМІТКА - Тому що пояснюючи найпоширеніші проблеми, я припускаю, що ви вже намагалися видалити та встановити або просто перевстановити службу mysql так:

Установка - sudo apt-get install mysql-server mysql-client
Видалення - sudo apt-get remove mysql-server mysql-client
Чистка (Видалення файлів + Налаштування) - sudo apt-get purge mysql-server mysql-client
Перевстановлення -sudo apt-get install --reinstall mysql-server mysql-client

  1. my.cnfФайл відсутній у каталозі за замовчуванням. Він повинен бути (за замовчуванням) розташований у будь-якому /etc/my.cnfабо /etc/mysql/my.cnf.

  2. На жорсткому диску, де знаходяться файли даних mysql, недостатньо місця. Якщо Бази даних стануть занадто великими і займають 100% жорсткого диска, сервіс вийде з ладу.

  3. Після оновлення перевірте, чи my.cnfфайл знаходиться у правильному місці. Залежно від того, як ви оновили або з якої версії ви оновили, це може бути в /etc/my.cnfабо /etc/mysql/my.cnfяк згадувалося раніше. Також пам’ятайте, що файл також можна назвати, mysql.confа не тільки my.cnf. Це відбувається в тих випадках, коли ви завантажили двійковий файл з mysql.com .

  4. Якщо зробити, dmesgщоб побачити, що таке служба mysql, - це повідомлення про помилку, оскільки це дає помилку завантаження. Це також може сказати, чому це відбувається. Якщо ви введете dmesgсамотужки в терміналі, він покаже вам світ. Ми хочемо - це інформація про mysql, тому зробимо щось подібне: dmesg | grep mysqlце викине вам будь-які рядки, які містять у них mysql.

  5. Перевірте правильність файлу my.cnfабо mysql.conf. У 12.04 MySQL - версія 5.5, в 11.10 - версія 5.1. У конф-файлі можуть бути деякі зміни (насправді цього не перевірено), і це може здатися нерозумним, але це, безумовно, може доставити вам певні проблеми.

  6. Помилки, пов’язані з проблемами сокета, як правило, є виною my.cnfабо mysql.confфайл вказує на неправильне місце, вони зазвичай відображаються як:

    Не вдається підключитися до локального сервера MySQL через сокет '/var/run/mysqld/mysqld.sock'

    Інше джерело цієї проблеми пов’язане з mysqlфайлом тим, /etc/init.dщо він вказує на неправильну папку, тому що він може використовувати старіший сценарій, ніж той, необхідний для фактичного mysql у системі (можливо, він не оновився правильно, не перезаписав конфігураційний файл тощо). Тому просто відредагуйте будь-який із цих двох файлів і подивіться, чи вони вказують десь ще, а потім просто зробіть, sudo service mysql restartщоб перевірити, чи працює він.

  7. Щоб краще ознайомитись із специфічними помилками виводами mysql, виконайте наступне:

    cat /var/log/mysql.err- Покаже вам помилки mysql. Я б зробив це таким чином, cat /var/log/mysql.err | lessякщо вам трапляється бачити занадто багато інформації, оскільки ми lessдопоможемо вам прокрутити шлях через вихід cat.

    Те саме стосується і cat /var/log/mysql.logякщо ви бачите помилку там, можливо, поставивши її у питанні чи коментар допоможе відповісти на це швидше.

  8. Якщо у вас виникають проблеми з підключенням і служба, яка вона фактично працює, спробуйте перевірити, чи дозволяє брандмауер сервера дозволяє з'єднання через порт 3306 (вхідні з'єднання). Після цього перевірте, чи маршрутизатор (якщо він застосовується) не заблокував порт 3306. В основному зробіть мережевий тест, щоб побачити, звідки походить проблема, пов'язана з портом, призначеним для mysql.

Якщо все добре, перевірити, чи працює служба mysql типу service mysql status

В крайньому випадку. Якщо у вас запускається mysql, але ви не можете увійти, спробуйте наступне:

  1. Зупинення сервера MySQL:

    sudo /etc/init.d/mysql stop або sudo service mysql stop

  2. Запустіть mysqldпослугу вручну з налаштуванням вручну

    sudo mysqld --skip-grant-tables &

    (Не забудьте додати & else, вам доведеться відкрити інший термінал. & Надсилає процес на задній план, і ви можете вбити, використовуючи той же термінал).

  3. Увійдіть до бази даних mysql як ROOT

    mysql -u root mysql

  4. Введіть наведене нижче, замінивши MyPASSWORD на новий пароль

    UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

Це слід заздалегідь увійти до служби Mysql як root. Сподіваюся, це допомагає.


Дякуємо за швидкий відгук. Файл my.cnf є /etc/mysql/my.cnfв моєму випадку. Це правильне розташування? dmesgдає мені задоволення від результату, який не відповідає моєму розумінню: / у мене дійсно було встановлено 5.1 - чи це має наслідки?
radek

1
Не турбуйтеся про місце, якщо ви знайдете файл. Дозвольте мені оновити відповідь, щоб краще ознайомитися з результатами mysql у dmesg.
Луїс Альварадо

4

У мене була така ж проблема після оновлення до Ubuntu Server 12.04 LTS, запущеного

sudo apt-get install mysql-server 

було достатньо, щоб виправити це, хоча він скаржився на стару базу даних спот-веб. Я це виправив, видаливши спот:

sudo apt-get purge spotweb

і переналаштування mysql:

sudo dpkg-reconfigure mysql-server-5.5

4

Додаю цей випадок, коли хтось стикається з подібними проблемами. Я намагався видалити та повторно встановити безрезультатно. Ключовим моментом для пошуку рішення було те, що в цій папці Upstart розміщує журнали помилок

/ var / log / upstart /

для mysql

/var/log/upstart/mysql.log

коли я відкрив це повідомлення

Помилка аналізатора AppArmor для /etc/apparmor.d/usr.sbin.mysqld в /etc/apparmor.d/tunables/global у рядку 15: Не вдалося відкрити "налаштування / головна"

Коли я заглянув у папку /etc/apparmor.d/tunables/, у мене не було домашнього файлу, тому я створив один

gedit /etc/apparmor.d/tunables/home і скопіював вміст з іншого комп'ютера, на якому були ці рядки, що не коментуються

@ {HOME} = @ {HOMEDIRS} / * / / root /

@ {HOMEDIRS} = / домашня /

хтось тут стикається з подібним питанням

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303

потім після цього я зміг перезапустити послугу



1

Після оновлення я виявив, що mysql-сервер / mysql-server-5.5 не встановлений і не 5.1. Я перейменував my.cnf в my.cnf_old і спробував встановити mysql-serven. Під час встановлення з’явилось повідомлення про помилку, що не вдалося встановити кореневий пароль. Після цього я перевірив свої конфігурації, apparmor тощо. З усіма здавалося, що це нормально. Наступною моєю спробою було налаштувати mysql-сервер, але вона скаржилася, що пакет не встановлений повністю. Тому я вирішив видалити і під час цього apt-get виправити пакет, і зараз він працює. Я не знаю чому, тому що я нічого не змінив.


1

У мене були подібні проблеми, але мене швидко відстежили до apparmor, який, як я пам’ятав, давав мені цю проблему раніше.

Якщо ви внесете зміни в ці налаштування, і ваша система використовує apparmor, вам також може знадобитися налаштувати /etc/apparmor.d/usr.sbin.mysqld. Напр. ці рядки були додані (щоб дозволити символьне посилання на файл my.cnf і дозволити читання файлу з посиланням, імовірно):

/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}


1

У моєму випадку я спробував встановити MySQL на свіжій установці Ubuntu 12.04, але я не зрозумів, чому це призвело до помилки у встановленні пароля для користувача root. Я спробував усі рішення вище, але нічого не зробив.

Тоді я вирішив все очистити / видалити, я видалив сервер MySQL і видалив усі його папки (/ etc / mysql / та / var / lib / mysql /), врешті подякувавши за якусь випадковість, вона не давала жодних помилок під час перевстановлення, і я зміг встановити пароль і запустити серверний екземпляр.


0

У терміналі ви можете встановити його знову, і змушує запустити my.cnf, ви можете ввести:

sudo apt-get install mysql-server-5.1
sudo apt-get --reconfigure mysql-server-5.1
sudo apt-get update
sudo start mysql my.cnf

це може працювати так.


0

У мене виникають проблеми з тим, що додавання performance_schemaпід [mysqld]в /etc/mysql/my.confвикликає цей збій. Видалено цю лінію і mysql вдалося запустити заново.

Редагувати: Виходить один гіг оперативної пам’яті просто недостатньо для запуску mysqld з увімкненою performance_schema. Я натрапив на 3 концерти, і це працювало чудово.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.