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

Я новичок в 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 автоматически исчез после обновления и должен был быть переустановлен.

Проверьте, что пакет mysql-server-5.1 был удален, похоже, он может сохраниться после обновления. У меня была та же ошибка, и мне пришлось очистить MySQL server 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/, если это не так, скопируйте их обратно в папку, затем выберите root:root

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

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

Далее установите сервер mysql

sudo apt-get install mysql-server

Наконец, переустановите все отсутствующие пакеты, такие как phpmyadmin и php5-mysql.

sudo dpkg-перенастройка mysql-сервера-5.5

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

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

Вы должны удалить файлы: /var/lib/mysql/ib_logfile*

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

Большинство ошибок будут обнаружены при запуске сервера в подробном режиме без демона и просмотре выходных данных:

sudo mysqld --verbose

У меня была такая же проблема, но ни один из приведенных выше ответов мне не помог. Поэтому в качестве последней надежды я попытался освободить немного места на диске. Я просто удаляю ненужные файлы журналов из /var /log, что освобождает около 2,5 Гб свободного места. Затем MySQL запустился нормально.

Это иногда случается, и хотя есть несколько различных проблем, которые могут привести к тому, что 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. В файле conf могут быть некоторые изменения (на самом деле я это не проверял), и это может показаться глупым, но это, безусловно, может доставить вам некоторые проблемы.

  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 &

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

  3. Войдите в базу данных mysql как корень

    mysql -u root mysql

  4. Введите следующее, заменив Мой пароль с вашим новым паролем

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

Этого должно быть достаточно, чтобы снова войти в вашу службу Mysql от имени root. Надеюсь, это поможет.

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

sudo apt-get install mysql-server 

этого было достаточно, чтобы исправить это, хотя он жаловался на старую базу данных spotweb. Я исправил это, удалив spotweb:

sudo apt-get purge spotweb

и перенастройка mysql:

sudo dpkg-reconfigure mysql-server-5.5

Я добавлю это, если кто-то столкнется с подобными проблемами. Я перепробовал все способы удаления и повторной установки, но безрезультатно.Ключом к поиску решения было то, что upstart помещает свои журналы ошибок в эту папку

/var/log/выскочка/

для mysql

/var/log/upstart/mysql.log

когда я открыл его, там было такое сообщение

Ошибка анализатора AppArmor для /etc/apparmor.d/usr.sbin.mysqld в/etc/apparmor.d/tunables/global в строке 15: не удалось открыть 'tunables/home'

Когда я заглянул в /etc/apparmor.d/настраиваемые/ В folderI отсутствовал домашний файл, поэтому я создал его

gedit /etc/apparmor.d/tunables/home и скопировал содержимое с другого компьютера, на котором были эти строки без комментариев

@{HOME}=@{HOMEDIRS}/*/ /корень/

@{HOMEDIRS}=/главная страница/

кто-то столкнулся с подобной проблемой здесь

https://bugs .launchpad.net/ubuntu /+источник/mysql-5.5/+ошибка/982303

затем, после этого, я смог перезапустить службу

В моем случае это было намного проще, чем некоторые ответы здесь. Я нашел тот связанная ошибка на панели запуска и исправление было таким, как упоминалось там в комментарии 9:

sudo touch /etc/apparmor.d/local/usr.sbin.mysqldsudo service apparmor restart

После обновления я обнаружил, что mysql-server / mysql-server-5.5 не был установлен, и ни 5.1. Я переименовал my.cnf в my.cnf_old и попытался установить mysql-serven. Во время установки появилось сообщение об ошибке, что не удалось установить пароль root. После этого я проверил свои конфигурации, apparmor и так далее. Казалось, все было в порядке. Моей следующей попыткой было перенастроить mysql-сервер, но он пожаловался, что пакет не был установлен полностью. Поэтому я решил удалить и во время этого apt-get исправил пакет, и теперь он работает. Я не знаю почему, потому что я ничего не изменил.