Не запускается mysql сервер linux

mysqld внезапно не стартует

В один прекрасный день необходимо было рестартнуть MySQL, но внезапно получилось вот что.

Debian 6.0.5, если что. Стартую:

Кто-нибудь может подсказать, в чём дело и как это исправить? На форуме была похожая тема, там предлагали пурджнуть и заново поставить мускуль, мне это не помогло. Если нужна ещё какая-то информация (логи или что ещё) — пожалуйста, напишите.

Есть те, кто еще не делает бекап и те, кто уже делают.

Место на диске не закончилось?

Бэкап базы у меня, разумеется, есть. Место на диске ещё много.

Похоже, пришел пушной зверек. InnoDB видит в своем дата-файле страницы из сплошных нулей. Таких там не бывает, обычно.

Если есть бекап — просто удаляй (ну или передвигай куда-нибудь) свой datadir.

Если бекапа нету- я бы сначала попробовал со всякими innodb_force_recovery запуститься (но откопируй datadir куда-нибудь перед запуском), а если не поможет, то google://percona+data+recovery+tool+innodb

Нет, при таком раскладе запустилось бы нормально )

Там именно что повреждена база физически.

Я делал бэкап с помощью mysqldump, в итоге имею sql файлик. Я так понимаю, что для восстановления нужно сделать что-то вроде:

Как я понял, требуется удалить содержимое /var/lib/mysql/, чтобы запустилось нормально?

Часто достаточно грохнуть просто /var/lib/mysql/ib_logfile[01] и /var/lib/tc.log

При чём после этого ещё и InnoDB базы как ни в чём ни бывало, порой, начинают работать 🙂

Похорошему, перджнуть пакет, удалить «rm -rf /var/lib/mysql/*». После накатить пакет. Вот когда накатишь, можно восстанавливать.

Источник

не стартует mysql

поставил из source mysql. при попытке запустить bin/mysqld_safe —user=mysql & запускается на несколько секунд а затем stopped. Вот log из файла .err

начальная база создана?
(mysql_install_db)

права у пользователя mysql есть на чтение-запись в /usr/local/mysql/var ?

почему, кстати, не захотели поставить дистрибутивный mysql ? mysql есть в любом дистрибутиве.

Побежали, побежали буковки по экрану. И что дальше?

начальная база создана? (mysql_install_db)

права у пользователя mysql есть на чтение-запись в /usr/local/mysql/var ?

почему, кстати, не захотели поставить дистрибутивный mysql ? mysql есть в любом дистрибутиве.

В моем только 4 версия а мне надо 5

Ну вот где-то в этих буковках, скорее всего, есть ответ 🙂 Если сами не разберетесь — кидайте на pastebin полный вывод.

# strace -vf -o /tmp/trace.log bin/mysqld_safe —user=mysql

/tmp/trace.log будет содержать информацию о запуске, если вам сложно самим разобраться — выложите куда-нибудь ( http://paste.debian.net например )

[quote]#/tmp/trace.log будет содержать информацию о запуске, если вам сложно самим разобраться — выложите куда-нибудь ( http://paste.debian.net например ) [/quote] файл весит 122 метра 😎 вот архив www.webfile.ru/5156189

2860 access(«/usr/local/mysql/my.cnf», R_OK) = -1 ENOENT (No such file or directory)
2860 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
2860 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
2860 access(«/usr/local/mysql/var/my.cnf», R_OK) = -1 ENOENT (No such file or directory)

у вас нет файла конфигурации my.cnf )

возьмите один из примеров ( есть в исходниках, или устанавливается в share) отредактируйте как надо и положите в /usr/local/mysql/var

Читайте также:  Система windows остановила это устройство код 43 amd radeon

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

результат тот же. Вот архив :www.webfile.ru/5156247 с trace.log а вот www.webfile.ru/5156250 с my.cnf

2429 access(«/usr/local/mysql/libexec/mysqld», X_OK) = 0

вот оно нашло mysqld

вот оно нашло каталог с БД

2429 access(«/usr/local/mysql/var/my.cnf», R_OK) = 0

вот оно нашло my.cnf

дальше мне не совсем понятно. но mysqld даже не запускается

2429 waitpid(-1, 0xbfcda198, WNOHANG) = -1 ECHILD (No child processes)
2429 sigreturn() = ? (mask now [])
2429 rt_sigaction(SIGINT, , <0x80760d4, [], 0>, 8) = 0
2429 fstat64(1, (136, 1), st_atime=2011/02/26-21:40:09, st_mtime=2011/02/26-21:40:09, st_ctime=2011/02/26-21:39:23>) = 0
2429 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d90000
2429 write(1, «110226 21:40:10 mysqld_safe WARN». 69) = ? ERESTARTSYS (To be restarted)
2429 — SIGTTOU (Stopped (tty output)) @ 0 (0) —
2429 — SIGTTOU (Stopped (tty output)) @ 0 (0) —
2429 write(1, «110226 21:40:10 mysqld_safe WARN». 69) = ? ERESTARTSYS (To be restarted)
2429 — SIGTTOU (Stopped (tty output)) @ 0 (0) —
2429 — SIGTTOU (Stopped (tty output)) @ 0 (0) —

Источник

Ошибка при запуск служба Mysql

Добрый день уважаемые программисты. Устанавливал Apache+php+Mysql чистом Ubuntu-16.04-amd64. Apache запускалось нормально без никаких проблем. Но при запуск служб mysql:

Оформите используя LORCODE www.linux.org.ru/help/lorcode.md (подсказка: используйте тег [code] выхлоп [/code])

Для длинных «портянок» используйте https://pastebin.com или аналогичный сервис, сюда прилагайте ссылку.

[ERROR] InnoDB: Cannot allocate memory for the buffer pool

Он же пишет что ему не хватает памяти

Он же пишет что ему не хватает памяти

У меня VDS: Дисковое пространство: 5 GB Процессор: 700 MHz Оперативная память: 256 Mb

Что посоветуйте. Значить не получается работать с этим сервером?

Все зависит от Ваших задач.
Если конечное приложение совсем не ресурсоемкое и большого потока клиентов не ожидается, то попробовать можно. Но нужно будет очень хорошо покрутить настройки у всего что есть в системе.
Вообще 256Мб RAM для одновременной работы apache и mysql выглядит странным решением..

Включите swap, если с ним будет работать (но будет тормозить и тупить) — увеличивайте RAM.

Источник

Не запускается mysql

Народ, при попытке указать в /etc/mysql/my.cnf

ругается при запуске

service mysql restart

Job for mysql.service failed. See .

вроде локалька utf-8 стоит, по крайней мере locale -a выдает:

мож кто подскажет в чем баг (кроме ДНК конечно)?

при чём тут java вообще?

ну, а смотреть на них и выкладывать сюда кто будет?

Читай то, что написано после «See . » и делай.

Та что там написано. See ‘systemctl status mysql.service’ and ‘journalctl -xn’ for detailes

Произошел сбой юнита mysql.service

Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!

Жаба виновата во всём

даже в нерабочести mysql, написанном на си

Добавь в тэги mysql и убери java. Либо объясни что ты делаешь.

Добавь в секцию mysqld параметр log:

если он там уже есть — посмотри значение

потом сходи в этот файл (/tmp/mysql.log) и очисти его полностью

дальше перезапусти mysql еще раз, и содержимое файла с логом выложи куда-нибудь (типа gist.github.com), ссылку на лог — сюда

Спасибо за помощь. Сорри за «лэйт респонс»

Сделал все как Вы сказали, ну тока /etc/mysql/my.cnf

Читайте также:  Linux server последняя версия

и в нем уже есть

пишет вот что: unknown variable: ‘default-character-set =utf8’

вроде все верно написано, а понимать не хочет. почему?

Источник

Устраняем типичные ошибки в MySQL

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».

Эта ошибка означает, что на хосте не запущен сервер MySQL ( mysqld ) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

Чтобы проверить состояние службы MySQL, используйте следующую команду:

Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.

Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

FBS , Санкт-Петербург , По итогам собеседования

Для поиска порта, который прослушивается сервером, используйте команду netstat .

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB больше, чем max_allowed_packet .
Читайте также:  Вывести arp таблицу linux

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout .

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections . Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf .

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом —quick switch , чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin .

Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

Заключение

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

  • Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/ . Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
  • Если служба MySQL не запускается, проверьте её состояние с помощью systemctl . Или используйте команду journalctl (с флагом -xe ) в systemd.
  • Вы также можете проверить файл системного журнала (например, /var/log/messages ) на предмет обнаружения ошибок.
  • Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
  • Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
  • Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist , чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Источник

Оцените статью