Решение ошибки mysqld в MySQL: запуск mysqld от root
Быстрый ответ
Если столкнулись с ошибкой при запуске mysqld
под аккаунтом пользователя root, выполните редактирование конфигурационного файла MySQL. Откройте /etc/mysql/mysql.conf.d/mysqld.cnf
, в секции [mysqld]
добавьте строку user=mysql
и выполните перезапуск MySQL следующей командой: sudo systemctl restart mysql
. Инструкция по добавлению выглядит так:
[mysqld]
# В качестве меры предосторожности используем учетную запись пользователя MySQL
user=mysql
Имейте в виду: Запуск MySQL от аккаунта пользователя root
представляет собой угрозу безопасности.
Значение сообщения об ошибке
Такой вид ошибки обычно возникает после обновления операционной системы, например, при переходе на OS X Yosemite. Ошибка указывает на то, что демон mysqld
пытается работать с правами администратора, что нежелательно с точки зрения безопасности.
Настройка правил безопасности для пользователя
В целях безопасности MySQL не стоит запускать от системного аккаунта root. Более разумным решением будет использование специализированной учетной записи MySQL с привилегиями пользователя root
для управления базой данных.
Порядок запуска и остановки сервера
Для стабильного запуска сервера MySQL используйте команду:
# "Кто там?"
# "Команда sudo предлагает серверу MySQL запуститься"
sudo /usr/local/mysql/support-files/mysql.server start
Для корректной остановки используйте mysqladmin shutdown
, таким образом вы избежите потенциальных проблем, связанных с принудительным остановом процесса mysqld
.
Визуализация
Представьте, что база данных – это город (🏙️), а права root – это ключи от этого города (🔑):
Передача ключей (🔑) каждому встречному (🤔💭):
🏙️🔑🤷♂️ --> Это однозначно приглашение к хаосу!
Назначение Мэра (пользователя не root) с определенными полномочиями – это ответственное решение:
Мэр (👨💼) держит ключи (🔑):
🏙️🔑👨💼 --> Это пример ответственного управления!
Вывод: Запуск mysqld
от имени пользователя root может привести к хаосу в "городе".
Если стандартный метод не работает
Если sudo systemctl restart mysql
не приводит к ожидаемому результату, попробуйте выполнить sudo service mysqld restart
. Это может быть актуально для Amazon Linux AMI или CentOS.
Как справиться с возникающими предупреждениями
Если вы столкнулись с предупреждениями по поводу временных меток и названий таблиц, уделите время настройкам сервера. Убедитесь, что ваш файл my.cnf
был правильно настроен и что имена таблиц не учитывают регистр символов, если это необходимо для вашей системы.
[mysqld]
# Настроим сервер так, чтобы он игнорировал регистр в именах таблиц. Это как игнорирование грамматики – некоторые просто на него не обращают внимания!
lower_case_table_names=1
Поддержание безопасности после запуска
Забота о безопасности не заканчивается запуском системы. Измените все пароли по умолчанию и убедитесь, что права доступа правильно настроены. Документация MySQL поможет вам в этом.
Полезные материалы
- Руководство по MySQL 8.0: Безопасность – официальное руководство по надлежащей безопасности.
- Как защитить базы данных MySQL и MariaDB на сервере Linux | DigitalOcean – детальное руководство по безопасности баз данных.
- Запуск mysqld от имени пользователя root и его последствия – База знаний MariaDB – информация о рисках, связанных с запуском
mysqld
от пользователяroot
. - Вопросы, отмеченные как 'mysql+root' – Ask Ubuntu – обсуждения работы MySQL от имени пользователя
root
пользовательским сообществом Ask Ubuntu. - Недавние обсуждения на тему 'mysql+security' – Server Fault – темы, связанные с безопасностью MySQL и их решения.
- Вот что происходит в реальном мире... источник: 162.253.66.76 · GitHub – примеры угроз и методы защиты баз данных MySQL.