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

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

56
задан 13 April 2017 в 15:23

14 ответов

Убедитесь, что пакет 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 /, если их нет, затем скопируйте их обратно в папку, затем 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.

0
ответ дан 13 April 2017 в 15:23
sudo dpkg-reconfigure mysql-server-5.5
0
ответ дан 13 April 2017 в 15:23

У меня возникла та же проблема после обновления до 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
0
ответ дан 13 April 2017 в 15:23

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

0
ответ дан 13 April 2017 в 15:23

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

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

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

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

0
ответ дан 13 April 2017 в 15:23

Это иногда происходит и хотя существует несколько различных проблем, которые могли заставить 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. Выполнение a 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 в системе (Это, возможно, не обновило правильно, не перезаписывало файл конфигурации и т.д.). Поэтому просто отредактируйте любое из этого два файла и посмотрите, указывают ли они где-то в другом месте и затем просто делают a 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. Если Вы страдаете от проблем соединения и сервиса, он на самом деле работает, попытайтесь видеть, позволяет ли Брандмауэр сервера соединения через 3 306 портов (Входящие соединения). Впоследствии проверьте, не имеет ли маршрутизатор (Если он применяется) заблокированного порта 3306. В основном сделайте тестирование сети для наблюдения, где проблема, связанная с портом, присвоенным mysql, порождается из.

Если все хорошо, чтобы протестировать, если mysql услуга работает тип service mysql status

Как последнее прибежище. Если Вы, оказывается, выполняете mysql, но Вы не можете войти в систему, пробуют следующее:

  1. Остановите MySQL Server:

    sudo /etc/init.d/mysql stop или sudo service mysql stop

  2. Запустите mysqld обслужите вручную с ручной конфигурацией

    sudo mysqld --skip-grant-tables &

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

  3. Войдите в mysql базу данных как КОРЕНЬ

    mysql -u root mysql

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

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

Этого должно быть достаточно для входа в систему в услуги Mysql как корень снова. Надежда это помогает.

5
ответ дан 13 April 2017 в 15:23

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

/ var / log / upstart /

для mysql

[ 1115] /var/log/upstart/mysql.log

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

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

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

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

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

@ {HOMEDIRS} = / home /

кто-то сталкивается с похожая проблема здесь

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

, после чего я смог перезапустить сервис

0
ответ дан 13 April 2017 в 15:23

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

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
sudo service apparmor restart
0
ответ дан 13 April 2017 в 15:23

У меня были похожие проблемы, но меня быстро отследили до аппармора, который, как я помнил, уже давал мне эту проблему.

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

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

0
ответ дан 13 April 2017 в 15:23

В терминале вы можете установить его снова и запустить 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
ответ дан 13 April 2017 в 15:23

В моем случае я попытался установить MySQL на новую версию Ubuntu 12.04, но я не понял, почему он дал мне ошибку при установке пароля для пользователя «root». Я перепробовал все решения выше, но ничего не поделать.

Затем я решил очистить / удалить все, я удалил сервер MySQL и удалил все его папки (/ etc / mysql / и / var / lib / mysql /), в конце концов, благодаря какой-то случайности, которую он не дал ошибка при переустановке, и я смог установить пароль и запустить экземпляр сервера.

0
ответ дан 13 April 2017 в 15:23

У меня проблемы с тем, что добавление performance_schema в [mysqld] в /etc/mysql/my.conf вызывает этот сбой. Удалил эту строку, и MySQL смог начать снова.

Редактировать: Оказывается, одного гигабайта оперативной памяти недостаточно для запуска mysqld с включенной performance_schema. Я столкнулся с 3 концертами, и все заработало нормально.

0
ответ дан 13 April 2017 в 15:23

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

sudo mysqld --verbose
0
ответ дан 13 April 2017 в 15:23

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

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: