Mysql ubuntu не запускается

Обновлено: 21.11.2024

Большая часть контента в Интернете хранится в базах данных, для которых MySQL является популярным выбором. Но что делать, если вдруг ваш динамический контент не загружается или при возвращении на сайт вас встречает почти пустая белая страница с сообщением «Ошибка установления соединения с базой данных». Это руководство предназначено для помощи в устранении неполадок с базами данных MySQL на облачных серверах, и, следуя перечисленным здесь шагам, вы, надеюсь, сможете восстановить функциональность своей базы данных.

Убедитесь, что служба запущена

Если ваш веб-сайт не может подключиться к вашей базе данных, возможно, служба просто не слушает. Проверьте состояние MySQL. В системах Ubuntu и Debian это можно сделать с помощью следующей команды.

CentOS и другие варианты Red Hat также используют MySQL, но вместо этого она называется MariaDB, поэтому вместо этого используйте эту команду.

Вывод проверки состояния в CentOS и Debian покажет что-то похожее на этот пример из CentOS ниже, вывод Debian будет почти идентичен, за исключением другого имени службы.

Распечатка довольно подробна, но важная часть обычно окрашена, чтобы лучше выделяться. Зеленый «активный (работает)» означает, что служба должна работать нормально, если вместо этого указано «активный (завершенный)» или «неактивный (мертвый)», процесс был остановлен или убит.

Ubuntu сжимает ту же информацию в одну строку, как в примере ниже.

Если в статусе вашей службы указано что-то отличное от «работает», попробуйте перезапустить процесс с помощью той же команды службы, что и раньше, но с «перезапуском» вместо «статуса».

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

Если вас приветствует сообщение «Добро пожаловать в монитор MySQL/MariaDB», это значит, что подключение установлено успешно и служба базы данных запущена. Если вместо этого вы получите сообщение об ошибке, подобное приведенному ниже примеру, вы, вероятно, неправильно набрали пароль для пользователя root. Попробуйте еще раз или, если вы не уверены в пароле root, войдите в систему с другой учетной записью пользователя, к которой у вас есть доступ, просто заменив root на другое имя пользователя.

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

Проверьте конфигурацию

Если MySQL работает, но ваш веб-сайт по-прежнему не загружается должным образом, или если при попытке подключиться к вашей базе данных вручную вы получаете сообщение об ошибке, подобное приведенному ниже, вам следует взглянуть на конфигурацию службы.< /p>

На серверах Debian и Ubuntu файл конфигурации для MySQL обычно сохраняется в /etc/mysql/. Также возможно хранить пользовательские настройки в /home//.my.cnf, которые переопределяют глобальные конфигурации. Проверьте, не установлены ли какие-либо переопределения на уровне пользователя. Обычно рекомендуется иметь отдельные имена пользователей для разных веб-приложений, поэтому проверьте хотя бы те из них, которые имеют отношение к проблемам с загрузкой вашей страницы. Вы можете открыть глобальный файл конфигурации с помощью первой из следующих двух команд ниже, а пользовательский файл — с помощью последней, заменив на имя пользователя базы данных.

Прокрутив вниз настройки [client] и [mysqld_safe], вы найдете что-то вроде примера здесь.

В CentOS и других Red Hat основной файл конфигурации хранится немного в другом месте, откройте его для просмотра с помощью

Строки, на которые следует обратить особое внимание, — это «socket», «datadir» и «bind-address». Параметры в приведенном выше примере имеют значения по умолчанию, и в большинстве случаев ваша конфигурация будет выглядеть так же. Убедитесь, что настройки указывают на правильные каталоги, чтобы MySQL действительно мог найти необходимые файлы. Самый простой способ проверить «каталог данных» — использовать эту команду ниже

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

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

Третий параметр, который вам нужно проверить, — это адрес привязки. Он имеет значение только в том случае, если к вашей базе данных требуется удаленный доступ. В установках Debian и Ubuntu привязка по умолчанию устанавливается на адрес обратной связи, что предотвращает вызовы базы данных из-за пределов локального хоста. CentOS не имеет такого же параметра, если только он не установлен вручную. Для любой настройки, когда ваша веб-служба находится на сервере, отличном от базы данных, этот адрес привязки должен быть установлен на собственный частный IP-адрес сервера.

Проверьте журналы ошибок

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

Серверы Debian и Ubuntu хранят журналы ошибок в файле /var/log/mysql/error.log. Вы можете читать журналы с помощью «меньше», но это может быть не очень удобно, поскольку журнал включает в себя не только критические ошибки. Вместо этого выполните поиск в журналах с помощью «grep».

Если вы не можете найти что-либо в самых последних журналах, проверьте также заархивированные. Для этого используйте «zgrep» с той же командой, что и обычная «grep»

Поскольку база данных в CentOS называется MariaDB, а не MySQL, журналы также сохраняются под другим именем. Вы можете выполнить поиск в журналах с помощью следующей команды.

Системы Debian также сообщают о событиях MySQL в /var/log/syslog. Чтобы отфильтровать все остальное, используйте «grep» с двумя ключевыми словами, разделенными .*, чтобы выразить «и», как в приведенной ниже команде.

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

Попросить о помощи

По оптимистичным оценкам, к настоящему времени ваша база данных должна снова работать, но если вы столкнулись с более устойчивой ошибкой, не стесняйтесь обращаться за помощью. Свяжитесь с нашей службой поддержки и попытайтесь объяснить проблему, насколько это возможно, а также укажите шаги, которые вы предприняли, с их результатами при устранении проблемы. Это поможет команде помочь вам решить проблему.

Главный редактор и технический писатель в UpCloud с 2015 года. Энтузиаст облачных вычислений, пишущий о серверных технологиях и программном обеспечении.

Поделиться этим руководством

18 мыслей на тему «Как исправить распространенные проблемы с базами данных MySQL»

На моем веб-сайте возникла ошибка базы данных, как ее устранить.

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

первой сработавшей командой была: sudo ls -l /var/lib/mysql/

Эти команды привели к следующему:
[[email protected] ~]$ sudo grep -i error /var/log/mysql/error.log
grep: /var/log/mysql/error. log: Нет такого файла или каталога
[[email protected] ~]$ sudo zgrep -i error /var/log/mysql/error.log.1.gz
gzip: /var/log/mysql /error.log.1.gz: Нет такого файла или каталога
[[email protected] ~]$ sudo grep -i error /var/log/mariadb/mariadb.log
grep: /var/ log/mariadb/mariadb.log: Нет такого файла или каталога

Привет, Джеймс, спасибо за комментарий. Кажется, ваша конфигурация записывает журналы ошибок где-то еще. Вы можете проверить каталог ls -l /var/log/, чтобы узнать, где находятся журналы MySQL, а затем просмотреть их с помощью grep или zgrep.

Помогите, я не могу запустить сервер mysql, вот журнал:

Попытка получить некоторые переменные.
Некоторые указатели могут быть недействительными и привести к прерыванию дампа.
Запрос (0): недопустимый указатель
Идентификатор соединения (идентификатор потока): 1
Статус: NOT_KILLED

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

28 июля, 16:20:36 vps-29bfc160.vps.ovh.ca systemd[1]: Запуск сервера MySQL…
28 июля, 16:20:38 vps-29bfc160.vps.ovh.ca systemd[ 1]: mysqld.service: основной процесс завершен, код = завершен, статус = 1/FAILURE
28 июля 16:20:38 vps-29bfc160.vps.ovh.ca systemd[1]: не удалось запустить сервер MySQL .
28 июля, 16:20:38 vps-29bfc160.vps.ovh.ca systemd[1]: модуль mysqld.service перешел в состояние сбоя.
28 июля, 16:20:38 vps-29bfc160.vps.ovh.ca systemd[1]: ошибка mysqld.service.

Привет, Джейсон, спасибо за комментарий. Вывод состояния системы для вашего MySQL мало что говорит о том, что вызвало проблему, но похоже, что основной процесс завершился сбоем при запуске сервера. Если вы недавно вносили изменения в конфигурацию своей базы данных, я бы посоветовал отменить изменения, чтобы посмотреть, решит ли это проблему. В противном случае вам, скорее всего, придется просмотреть журналы, чтобы найти дополнительные подсказки.

Здравствуйте, я не могу подключиться с моего веб-сайта к базе данных. Он показывает статус 200, но данные не определены!
Случай 1: Хотя база данных дает ответ с моей локальной машины на удаленную машину!!
Случай 2: База данных отправляет ответы с моего локального виртуального частного сервера (VPS) на локальную базу данных виртуального частного сервера (VPS)
Случай 3: Проблема возникает здесь!!Пользователь тот же с теми же учетными данными, теперь соединение установлено, но данные всегда не определены! Я пытался внести изменения в адрес привязки, но безуспешно!!

Не могли бы вы помочь? Застрял здесь последние 3 дня!

Привет, Джаскират, спасибо за комментарий. Ваша база данных прослушивает порт по умолчанию 3306? В противном случае это может привести к тому, что приложения, запрашивающие базу данных, получат неверные ответы. В противном случае ответ, скорее всего, зависит от реализации вашего приложения.

Привет, я Интан. Я уже следую всем шагам. но все равно получайте уведомление о том, что «в вашей установке PHP отсутствует расширение MySQL, необходимое для WordPress». Но когда я проверяю статус mysql, он активен и работает.

drwx—— 2 mysql mysql 4096 19 окт 08:20 wordpress

Проблема возникла при попытке доступа к wordpress в веб-браузере.
Вы можете помочь?

Привет, Интан, спасибо за комментарий. Ошибка, скорее всего, связана с пакетом расширения PHP-MySQL. В зависимости от вашей операционной системы вы можете установить его с помощью следующей команды:

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

не удается сохранить данные в базе данных mysql, если значения заданы на веб-сервере apache

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

как проверить, успешна ли запись в таблицу, потому что иногда мы не можем найти строки в таблице

Привет, Инда, спасибо за вопрос. Если вы используете PHP, вы можете использовать функцию Effective_rows(), чтобы проверить, какой эффект имел предыдущий запрос INSERT, UPDATE, REPLACE или DELETE.

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

9:01:48 PM [mysql] Обнаружено изменение состояния: остановлен
21:01:48 [mysql] Ошибка: MySQL неожиданно завершил работу.
21:01:48 [mysql] Это может быть связано с заблокированным портом, отсутствующими зависимостями,
21:01:48 [mysql] неправильными привилегиями, сбоем или завершением работы другим способом. .
21:01:48 [mysql] Нажмите кнопку «Журналы», чтобы просмотреть журналы ошибок и проверить
21:01:48 [mysql] средство просмотра событий Windows, чтобы получить дополнительные подсказки
9:01 :48 PM [mysql] Если вам нужна дополнительная помощь, скопируйте и опубликуйте
21:01:48 [mysql] все окно журнала на форумах

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

Но файл mysqld.sock не существует в папке /var/run/mysqld. При выполнении ps aux | grep mysql, я понял, что сервер mysql не запущен.

Затем я попытался перезапустить сервер mysql, используя

Но во всех трех случаях процесс запуска завершился неудачно. Файлы /var/log/mysql/mysql.log и /var/log/mysql/mysql.err пусты.

Но /var/log/error.log показывает следующую информацию:

Я новичок в Linux. Я изменил разрешения для /var/lib/mysql с помощью chmod 777 . Не могли бы вы подсказать, как проверить, что это не так?< /p>

11 ответов 11

Откройте терминал (Ctrl + Alt + t) и выполните следующие действия:

и закомментируйте строку record_buffer=64M в файле /etc/mysql/my.cnf [1]

а затем перезапустите msyql, используя:

Я выполнил команды, которые вы упомянули. При запуске sudo service mysql restart выдало сообщение об остановке: Неизвестный экземпляр и приглашение оболочки не появилось (перезапуск все еще выполняется за последние 50 минут)

Кроме того, теперь в журнале ошибок указано: -140425 15:09:11 InnoDB: самый высокий поддерживаемый формат файла — Barracuda. 140425 15:09:12 InnoDB: ожидание запуска фоновых потоков 140425 15:09:13 InnoDB: запущена версия 5.5.37; порядковый номер журнала 940942258188 140425 15:09:13 [ОШИБКА] /usr/sbin/mysqld: неизвестная переменная 'record_buffer=64M' 140425 15:09:13 [ОШИБКА] Прерывание 140425 15:09:13 InnoDB: запуск завершения работы. 140425 15:09:14 InnoDB: завершение работы завершено; порядковый номер журнала 940942258188 140425 15:09:14 [Примечание] /usr/sbin/mysqld: завершение работы

Это решило мою проблему:

chown -R mysql /var/run/mysqld

Я решил проблему следующим образом:

В другом контексте я столкнулся с этим, потому что демон mysql не запустился. Итак, запустите демон с помощью команды - mysqld start, а затем попробуйте запустить службу.

У меня было такое же сообщение об ошибке и такая же пустота в файлах журналов. В моем конфигурационном файле (my.cnf) я указал, что хочу использовать таблицы myisam, добавив эту строку в раздел [mysqld]:

Похоже, что после обновления mysql mysql не запускается.Я изменил это на:

и теперь все работает нормально.

Также может помочь увеличение доступной оперативной памяти путем добавления нового пространства подкачки. Шаги здесь

Убедитесь, что размер файла /swapfile меньше доступного места, показанного

Например, для меня вывод df-h был таким:

Поэтому я создал с использованием 2 ГБ

А затем просто запустите службу

Надеюсь, это поможет. Всего наилучшего.

Проверить, есть ли во всех файлах /etc/rc1.d . /etc/rc5.d сценарий mysql начинается с S (например, S10mysql), а не с K AS K10mysql.

Объяснение: префикс K загружается с остановкой, что-то вроде службы уничтожения; и префикс S начинается с начального параметра.

В моем случае это была проблема с местом. Проверьте, достаточно ли у вас свободного места.

из /var/log/mysql/error.log я получил несколько подсказок из двух строк:

Я вижу, что это проблема с местом.

Отсюда видно, что на виртуальном сервере /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% / недостаточно места. И я думал о переносе или увеличении виртуального диска, но решил сначала удалить ненужные файлы.

Итак, пришлось почистить кеш и файлы, которые не нужны:

Затем не забудьте после этого удалить поврежденные файлы журнала mysql. Они будут сгенерированы снова при перезапуске mysql

Вы можете ввести !ref в этой текстовой области, чтобы быстро найти наш полный набор руководств, документации и предложений на рынке и вставить ссылку!

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

Похоже, ваша проблема связана с файлами журналов. Вносили ли вы в последнее время какие-либо изменения в Mysql?

В вашем каталоге данных Mysql вам нужно удалить эти файлы, не забудьте сначала скопировать их, чтобы иметь резервную копию.

ib_logfile0 ib_logfile1 ibdata1

После этого откройте файл my.cnf, обычно расположенный в /etc/my.cnf, найдите раздел innodb и добавьте его в конец, если его еще нет

Вы также можете очистить файл журнала ошибок, попробуйте снова перезапустить mysql

надеюсь, это поможет вам

Этот комментарий был удален

Этот комментарий был удален

Введите df -h, чтобы проверить свободное место на диске.

Если ваш диск заполнен, mysql не запустится

Внезапно у меня начались проблемы со сбоем и не запуском mysql, и я видел такие записи журнала, как: $ dmesg | grep mysql [6.208963] тип = 1400 аудит (1477060722.802:22): apparmor = «СТАТУС» операция = «profile_load» профиль = «неограниченный» имя = «/usr/sbin/mysqld» pid = 1183 comm = «apparmor_parser» [ 6.709699 ] type=1400 аудит(1477060723.302:25): apparmor="СТАТУС" операция="profile_replace" профиль="неограниченный" имя="/usr/sbin/mysqld" pid=1299 comm="apparmor_parser" [ 6.817714] init: mysql основной процесс (1320) завершен со статусом 1 [ 6.817729] init: основной процесс mysql завершен, возрождение [ 7.803123] init: постстартовый процесс mysql (1321) завершен со статусом 1 [ 7.869587] init: основной процесс mysql (1371) завершен с статус 1 [ 7.869603] init: основной процесс mysql завершен, возрождение [ 8.856238] init: постстартовый процесс mysql (1373) завершен со статусом 1 [ 8.906902] init: основной процесс mysql (1510) завершен со статусом 1 [ 8.906917] init: mysql перезагружается слишком быстро, остановлен

Когда я начал пытаться запускать команды apt-get, ЭТО терпело неудачу, жалуясь на файлы tmp.

Это напомнило мне, что на моем веб-сервере у меня были предыдущие проблемы, потому что я монтировал /tmp как tmpfs, и он (по неизвестным причинам) перемонтировался как доступный только для чтения, что вызвало целый каскад проблем.< /p>

ТАК, если вы монтируете /tmp с tmpfs и другими флагами в целях безопасности, это может вызвать и другие проблемы.

Часто вы сталкивались с этим сообщением на своем сервере при попытке перезапустить сервер базы данных.

Наши инженеры службы поддержки поддерживают серверную инфраструктуру нескольких веб-хостинговых компаний, и это распространенная проблема, которую мы наблюдаем на многих серверах Linux.

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

Причины ошибки «Mysql не удалось запустить» на ваших серверах

  1. Ошибки в конфигурации. MySQL хранит свои параметры конфигурации в файле «/etc/my.cnf». Любые ошибки или неподдерживаемые параметры в этом файле конфигурации могут помешать запуску сервера.
  2. Поврежден двоичный файл MySQL. Когда двоичный файл или таблицы MySQL повреждены, это может привести к сбою или прекращению запуска сервера MySQL.
  3. Разрешения/владение двоичными файлами и папками. Иногда права собственности и разрешения для файлов MySQL, таких как двоичные файлы, журналы или даже для всей папки «/var/lib/mysql», могут быть случайно изменены, что может привести к ошибкам. при запуске службы.
  4. Порт MySQL уже используется. Если на порту MySQL запущен какой-либо другой процесс (по умолчанию 3306), MySQL не сможет привязаться к порту и не сможет работать.
  5. Невозможно записать в /tmp. Если каталог /tmp недоступен для записи из-за проблем с правами доступа или нехватки места, MYSQL не может записать необходимые файлы и не может запуститься.
  6. Недостаток места на диске. Еще одной причиной сбоев MySQL является отсутствие достаточного места на диске на сервере, что можно проверить с помощью команды «df -h».
  7. Недостаточно памяти. Если процесс MySQL не получает достаточно памяти из-за некорректных процессов или любого другого действительного процесса, он не может запуститься или будет постоянно падать.

[ Вам не нужно терять сон, чтобы ваши клиенты были довольны. Наши дружелюбные инженеры службы поддержки онлайн 24/7/365, чтобы помочь вашим клиентам. ]

Как мы устраняем сбои MySQL на серверах

  1. Исправление разрешений/владельцев. Мы гарантируем, что сервер MySQL может получить доступ к каталогу данных. Владелец и права доступа к каталогу данных устанавливаются таким образом, чтобы пользователь mysql мог их читать и изменять.
  2. Выделение достаточного места на диске. Если места на диске на сервере недостаточно, мы устраняем эту проблему, удаляя ненужные файлы и папки или перемещая данные в другие разделы.
  3. Изучение журналов ошибок. MySQL сохраняет свои ошибки в файлах hostname.err и hostname.log. Подробно изучив эти файлы журналов, мы сможем выявить и устранить проблемы.
  4. Исправление ошибок конфигурации. Любые ошибки в файле конфигурации my.cnf или повреждения таблицы немедленно выявляются и устраняются.
  5. Добавление памяти подкачки. Если сбой службы вызван нехваткой памяти, мы решим эту проблему, увеличив память подкачки, выделенную серверу.
  6. Переустановка сервера. В случаях, когда двоичный файл MySQL поврежден или установка не завершена, мы переустанавливаем сервер и восстанавливаем работоспособность службы.

[ Используйте свое время для развития своего бизнеса. Мы позаботимся о ваших серверах. Наймите наших инженеров службы поддержки и повысьте производительность своего сервера. ]

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

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

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

В этом разделе приведены рекомендации по устранению неполадок при запуске сервера. Дополнительные рекомендации для систем Windows см. в разделе Устранение неполадок при установке Microsoft Windows MySQL Server.

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

Проверьте журнал ошибок, чтобы узнать, почему сервер не запускается. Файлы журнала расположены в каталоге данных (обычно C:\Program Files\MySQL\MySQL Server 8.0\data в Windows, /usr/local/mysql/data для бинарного дистрибутива Unix/Linux и /usr/local/var для исходный дистрибутив Unix/Linux). Найдите в каталоге данных файлы с именами вида host_name .err и host_name .log , где host_name — имя хоста вашего сервера. . Затем просмотрите последние несколько строк этих файлов. Используйте хвост, чтобы отобразить их:

Укажите любые специальные параметры, необходимые для используемых вами механизмов хранения. Вы можете создать файл my.cnf и указать параметры запуска для двигателей, которые вы планируете использовать. Если вы собираетесь использовать механизмы хранения, которые поддерживают транзакционные таблицы (InnoDB, NDB), убедитесь, что вы настроили их так, как хотите, перед запуском сервера. Если вы используете таблицы InnoDB, см. Конфигурация InnoDB для рекомендаций и Параметры запуска InnoDB и системные переменные для синтаксиса параметров.

Хотя механизмы хранения используют значения по умолчанию для параметров, которые вы опускаете, Oracle рекомендует просмотреть доступные параметры и указать явные значения для всех параметров, значения по умолчанию которых не подходят для вашей установки.

Убедитесь, что сервер знает, где найти каталог данных. Сервер mysqld использует этот каталог в качестве своего текущего каталога. Здесь он ожидает найти базы данных и записать файлы журналов. Сервер также записывает файл pid (идентификатор процесса) в каталог данных.

Расположение каталога данных по умолчанию жестко задано при компиляции сервера. Чтобы определить параметры пути по умолчанию, вызовите mysqld с параметрами --verbose и --help. Если каталог данных расположен где-то еще в вашей системе, укажите это местоположение с параметром --datadir для mysqld или mysqld_safe в командной строке или в файле параметров. В противном случае сервер не работает должным образом.В качестве альтернативы параметру --datadir вы можете указать mysqld расположение базового каталога, в котором установлена ​​MySQL, с параметром --basedir , и mysqld будет искать там каталог данных.

Чтобы проверить результат указания параметров пути, вызовите mysqld с этими параметрами, за которыми следуют параметры --verbose и --help. Например, если вы измените местоположение на каталог, в котором установлен mysqld, а затем выполните следующую команду, она покажет результат запуска сервера с базовым каталогом /usr/local :

Вы также можете указать другие параметры, такие как --datadir, но --verbose и --help должны быть последними параметрами.

Определив нужные параметры пути, запустите сервер без --verbose и --help .

Если mysqld в данный момент запущен, вы можете узнать, какие настройки пути он использует, выполнив эту команду:

host_name — это имя хоста сервера MySQL.

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

Если вы получаете код ошибки 13 (что означает отказ в доступе) при запуске mysqld, это означает, что привилегии каталога данных или его содержимого не разрешают доступ к серверу. В этом случае вы меняете разрешения для задействованных файлов и каталогов, чтобы сервер имел право их использовать. Вы также можете запустить сервер как root , но это создает проблемы безопасности и этого следует избегать.

Измените местоположение на каталог данных и проверьте владельца каталога данных и его содержимого, чтобы убедиться, что сервер имеет доступ. Например, если каталог данных /usr/local/mysql/var , используйте эту команду:

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

Даже при правильном владении MySQL может не запуститься, если в вашей системе запущено другое программное обеспечение безопасности, которое управляет доступом приложений к различным частям файловой системы. В этом случае перенастройте это программное обеспечение, чтобы разрешить mysqld доступ к каталогам, которые он использует во время нормальной работы.

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

Если возникает одна из следующих ошибок, это означает, что какая-то другая программа (возможно, другой сервер mysqld) использует порт TCP/IP или файл сокета Unix, который пытается использовать mysqld:

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

Если никакой другой сервер не запущен, выполните команду telnet your_host_name tcp_ip_port_number . (Номер порта MySQL по умолчанию — 3306.) Затем нажмите Enter пару раз. Если вы не получили сообщения об ошибке, такого как telnet: Невозможно подключиться к удаленному хосту: Отказано в подключении, какая-то другая программа использует порт TCP/IP, который пытается использовать mysqld. Отследите, что это за программа, и отключите ее, или скажите mysqld слушать другой порт с опцией --port. В этом случае укажите тот же номер порта не по умолчанию для клиентских программ при подключении к серверу с помощью TCP/IP.

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

Если сервер запускается, но вы не можете к нему подключиться, убедитесь, что у вас есть запись в /etc/hosts, которая выглядит следующим образом:

Если вы не можете запустить mysqld, попробуйте создать файл трассировки, чтобы найти проблему, используя параметр --debug. См. Пакет DBUG.

Читайте также: