Я новичок на 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 автоматически исчезал после обновления и должен был быть переустановлен.
sudo rm /etc/mysql/ -R
- его просто не было в моем случае. В любом случае - к счастью, это была просто локальная установка для тестирования Wordpress. Интересно, что произойдет на реальном сервере o_Oapt-get update
предварительную раздачу, потому что он удалил dovecot и php5-mysql. Я мог только переустановить их после обновления. Как только я это сделал, все снова заработало нормально.-bash: cd: /var/lib/mysql/: Permission denied
и использованиеsudo -i
даже не работает.источник
У меня была та же проблема, и для меня это было то, что файлы журнала InnoDB были другого размера, чем ожидал mysql, и потерпели неудачу во время обновления.
У меня был пользовательский файл конфигурации, который был удален при обновлении до 12.04, который устанавливал размеры файла журнала, отличные от конфигурации по умолчанию.
Вы должны удалить файлы: / var / lib / mysql / ib_logfile *
После того, как файлы пропали, mysql может теперь начать и создать новые файлы журнала по умолчанию.
источник
Большинство ошибок будет отображаться при запуске сервера в подробном не-демоническом режиме и просмотре вывода:
источник
У меня была такая же проблема, но ни один из ответов выше не помог мне. В качестве последней надежды я попытался освободить место на диске. Я просто удаляю ненужные файлы журналов из / var / log, которые освобождают пространство 2.5G. Затем 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
my.cnf
Файл не находится в каталоге по умолчанию. Она должна быть (по умолчанию) расположены в любом/etc/my.cnf
или/etc/mysql/my.cnf
.Недостаточно места на жестком диске, где находятся файлы данных mysql. Если базы данных становятся слишком большими и занимают 100% жесткого диска, служба не будет работать.
После обновления проверьте, что
my.cnf
файл находится в правильном месте. В зависимости от того, как вы обновили версию или с какой версии, она может быть в/etc/my.cnf
или/etc/mysql/my.cnf
как уже упоминалось ранее. Также помните, что файл также может быть названmysql.conf
и не толькоmy.cnf
. Это происходит в тех случаях, когда вы скачали бинарный файл с mysql.com .Делать,
dmesg
чтобы увидеть, что сервис MySQL выдает, помогает сообщение об ошибке, поскольку оно выдает ошибку загрузки. Можно также сказать, почему это происходит. Если вы напечатаетеdmesg
один в терминале, он покажет вам мир. Нам нужна информация о mysql, поэтому сделайте что-то вроде этого:dmesg | grep mysql
вы получите все строки, содержащие mysql.Убедитесь, что файл
my.cnf
илиmysql.conf
является правильным. В 12.04 MySQL - это версия 5.5, в 11.10 - это версия 5.1. Он может иметь некоторые изменения в файле conf (на самом деле это не проверял), и это может звучать глупо, но это может доставить вам некоторые проблемы.Ошибки, связанные с проблемами сокетов, обычно являются ошибкой файла
my.cnf
или,mysql.conf
указывающего на неправильное место, они обычно отображаются как:Другой источник этой проблемы связан с
mysql
файлом в/etc/init.d
том смысле, что он указывает на неправильную папку, поскольку он может использовать более старый сценарий, чем тот, который необходим для фактического mysql в системе (возможно, он не обновился правильно, не перезаписал файл конфигурации и т.д ..). Так что просто отредактируйте любой из этих двух файлов и посмотрите, указывают ли они куда-то еще, а затем просто сделайте,sudo service mysql restart
чтобы проверить, работает ли он.Чтобы лучше рассмотреть специфичные для ошибок выходные данные mysql, сделайте следующее:
cat /var/log/mysql.err
- покажет вам ошибки MySQL. Я бы сделал так,cat /var/log/mysql.err | less
если бы вы увидели, что слишком много информации пролетает мимо, посколькуless
поможет вам прокрутить свой путь через выводcat
.То же самое касается и того, что
cat /var/log/mysql.log
если вы видите ошибку, возможно, добавьте ее в вопрос или в качестве комментария, чтобы помочь ответить на этот вопрос быстрее.Если вы страдаете от проблем с подключением и службы, которая на самом деле работает, попробуйте проверить, разрешает ли брандмауэр сервера подключений через порт 3306 (Входящие подключения). После этого проверьте, не заблокировал ли маршрутизатор (если он применяется) порт 3306. В основном, выполните сетевой тест, чтобы выяснить, откуда возникла проблема, связанная с портом, назначенным для mysql.
Если все хорошо, чтобы проверить, работает ли служба mysql типа
service mysql status
В крайнем случае. Если вы используете mysql, но не можете войти, попробуйте следующее:
Остановите сервер MySQL:
sudo /etc/init.d/mysql stop
или жеsudo service mysql stop
Запустите
mysqld
сервис вручную с ручной настройкойsudo mysqld --skip-grant-tables &
(Не забудьте добавить &, иначе вам придется открыть другой терминал. & Отправляет процесс в фоновый режим, и вы можете убить его, используя тот же терминал).
Войдите в базу данных mysql как ROOT
mysql -u root mysql
Введите следующее, заменив MyPASSWORD новым паролем
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
Это необходимо для того, чтобы снова войти в службу Mysql как root. Надеюсь, это поможет.
источник
/etc/mysql/my.cnf
в моем случае. Это правильное местоположение?dmesg
дает мне выходные данные, которые находятся за пределами моего понимания: / Я действительно установил 5.1 - это имеет какие-нибудь последствия?У меня была такая же проблема после обновления до Ubuntu Server 12.04 LTS, работающего
было достаточно, чтобы исправить это, хотя он жаловался на старую базу данных spotweb. Я исправил это, удалив spotweb:
и перенастроить mysql:
источник
Я добавлю это, если кто-то сталкивается с подобными проблемами. Я пытался все удаления и повторной установки безрезультатно. Ключом к поиску решения было то, что выскочка помещает свои журналы ошибок в эту папку
/ Вар / Журнал / выскочка /
для MySQL
/var/log/upstart/mysql.log
когда я открыл это было это сообщение
Когда я заглянул в папку /etc/apparmor.d/tunables/, мне не хватало домашнего файла, поэтому я создал его
gedit /etc/apparmor.d/tunables/home и скопировал содержимое с другого компьютера, на котором были эти строки без комментариев
кто-то сталкивается с подобной проблемой здесь
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303
после этого я смог перезапустить сервис
источник
В моем случае это было намного проще, чем некоторые ответы здесь. Я нашел связанную ошибку на панели запуска, и исправление было таким, как упомянуто там в комментарии 9:
источник
После обновления я обнаружил, что mysql-server / mysql-server-5.5 не был установлен и ни 5.1. Я переименовал my.cnf в my.cnf_old и попытался установить mysql-serven. Во время установки появилось сообщение об ошибке, что пароль root не может быть установлен. После этого я проверил свои конфиги, apparmor и так далее. Казалось, все в порядке. Моя следующая попытка была перенастроить MySQL-сервер, но он жаловался, что пакет не был установлен полностью. Поэтому я решил удалить и во время этого apt-get исправить пакет, и теперь он работает. Я не знаю почему, потому что я ничего не изменил.
источник
У меня были похожие проблемы, но меня быстро отследили до аппармора, который, как я помню, ранее давал мне эту проблему.
Если вы вносите изменения в эти настройки и ваша система использует apparmor, вам также может понадобиться настроить /etc/apparmor.d/usr.sbin.mysqld. Например. эти строки были добавлены (чтобы разрешить символическую ссылку на my.cnf и чтобы можно было прочитать символический файл, предположительно):
/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}
источник
В моем случае я пытался установить MySQL на новую версию Ubuntu 12.04, но я не понял, почему он дал мне ошибку при установке пароля для пользователя root. Я перепробовал все решения выше, но ничего не поделать.
Затем я решил очистить / удалить все, я удалил сервер MySQL и удалил все его папки (/ etc / mysql / и / var / lib / mysql /), в конце концов, благодаря какой-то случайности, которая не выдает никакой ошибки во время переустановка, и я смог установить пароль и запустить экземпляр сервера.
источник
В терминале вы можете установить его снова и запустить my.cnf, набрав:
это может работать таким образом.
источник
У меня возникают проблемы , что добавление
performance_schema
при[mysqld]
в/etc/mysql/my.conf
вызывает эту ошибку. Удалил эту строку и MySQL смог начать снова.Изменить: Оказывается, одного гигабайта оперативной памяти просто недостаточно, чтобы запустить mysqld с включенной performance_schema. Я столкнулся с 3 концертами, и все работало нормально.
источник