Mysql centos 7 не запускается

Обновлено: 21.11.2024

MySQL — это СУБД с открытым исходным кодом, выпущенная под лицензией GNU (General Public License). Существует две версии: Community (для чтения, бесплатная) и Enterprise Edition (платная, с поддержкой).

Ниже шаг по установке Community Edition MySQL 8 на CentOS 7.

🛠Предпосылки

Настройка репозитория Yum

Во-первых, войдите на свой компьютер как пользователь root

Если его еще нет в системе, нам нужен пакет ( wget ), чтобы загрузить RPM репозитория

Давайте установим

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

Установка MySQL 8

Прежде чем установить базу данных, нам нужно импортировать репозиторий, загруженный ранее

После этого мы готовы установить MySQL 8

Запустить службу MySQL

После завершения процесса установки нам нужно запустить MySQL Deamon

Корневой пароль по умолчанию

При установке MySQL 8.0 учетной записи пользователя root предоставляется временный пароль.

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

Вывод должен быть таким

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

Запишите этот пароль, он нам понадобится через минуту

Безопасная установка MySQL

При установке MySQL по умолчанию включены некоторые параметры, которые нельзя оставлять активными (в основном для установок производственного уровня, но рекомендуется изучить их даже для тестовых/лабораторных сред)

Чтобы начать процедуру защиты, выполните приведенную ниже команду

Первое, что он спросит, это текущий пароль для учетной записи root:

Введите временный пароль, полученный с помощью приведенной выше команды, и нажмите Enter .

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

Введите новый пароль, а затем подтвердите его сразу после запроса

⚠️ Примечание. Введите сложный пароль, процедура не примет слабый пароль, и вы не сможете продолжить — если у вас возникли проблемы с его поиском, вы можете использовать R00t123!$

После подтверждения пароля вам будет предложено задать несколько вопросов, настоятельно рекомендуется ответить да ( y ) на все из них

Перезапустите и включите службу MySQL

Сразу после выхода из процесса mysql_secure_installation пришло время перезапустить службу mysql:

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

Подключение к MySQL

Проверим, все ли работает.

Подключиться к вашему экземпляру MySQL

Появится запрос на ввод пароля пользователя root.

Введите пароль, который вы выбрали во время установки mysql_secure_installation, и нажмите Enter :

Используйте команду SHOW DATABASES, чтобы отобразить все базы данных на текущем сервере:

Большая часть контента в Интернете хранится в базах данных, для которых 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.

Служба MySQL не работает в системе CentOS 7

При настройке системы я установил MariaDB, ответвление системы управления реляционными базами данных (RDBMS) MySQL, в системе CentOS 7. Когда я проверил версию программного обеспечения с помощью команды mysql --version, я увидел следующее:

Я проверил, запущена ли служба mysqld, и обнаружил, что это не так.

Когда я попытался запустить службу, она не запустилась.

Я проверил содержимое файла /etc/my.cnf и увидел следующее:

Я проверил наличие файлов и каталогов, перечисленных в этом файле. Я увидел следующие результаты для местоположений datadir , socket , log-error и pid-file :

Я не видел никакого файла mariadb.pid, но я не ожидал, что он будет создан, пока не будет успешно запущена служба mysqld.

Когда я проверил файлы в каталоге includeir, я увидел следующее:

Поэтому я не знал, почему я получаю сообщение "Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock'" при выполнении команды mysql, а также почему моя попытка запустить службу mySQL не удалось с сообщением «Нет такого файла или каталога». Поискав в Интернете, я нашел публикацию danneth в No mysqld или mysql.server после установки mariadb-server для использования systemctl start mariadb.service . Когда я использовал эту команду, я не видел никаких сообщений об ошибках. Я попробовал службу systemctl status mysqld после ввода команды, но все равно увидел для нее сообщение об ошибке. Но когда я затем ввел команду mysql, на этот раз я получил сообщение «отказано в доступе», что казалось разумным, поскольку я не предоставил пароль для учетной записи root, когда вводил команду..

Когда я использовал CentOS 5, у меня была MySQL, а не MariaDB, и я не знал, что мне нужно запустить службу СУБД MariaDB в системе CentOS 7 с помощью команды, ссылающейся на mariadb, а не на mysqld. Я предположил, что могу сослаться на mysqld для запуска службы.

Историю создания MariaDB можно найти в разделе истории статьи Википедии о MySQL. MariaDB была создана одним из соучредителей MySQL Майклом Видениусом после того, как корпорация Oracle приобрела права на программное обеспечение MySQL у Sun Microsystems.

Чтобы служба MariaDB запускалась автоматически при каждой загрузке системы, введите команду systemctl enable mariadb.service . После запуска службы также введите команду mysql_secure_installation .

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

Я скопировал содержимое каталога /var/lib/mysql с жесткого диска предыдущей системы CentOS 5 в новую систему CentOS 7, чтобы все базы данных из старой системы были доступны в новой системе, поэтому это оказалось причиной того, что mysql_secure_installation , которую можно найти в /usr/bin , изначально не приняла мое простое нажатие Enter для ввода пароля. Когда я ввел пароль root для MySQL в старой системе, он был принят. И я, наконец, смог получить подсказку, где я мог бы вводить команды SQL, используя этот пароль, с помощью mysql -u root -p .

Итак, 3 шага для включения и запуска MariaDB следующие, при условии, что он был ранее установлен во время первоначальной настройки системы или с помощью yum install mariadb mariadb-server :

Установите MySQL 8.0 на CentOS 8

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

MySQL изначально был разработан компанией MYSQL AB, которая теперь принадлежит корпорации Oracle. Это было основное приложение базы данных в Linux, пока не появилась MariaDB, ответвление MySQL.

В этой статье мы рассмотрим шаги по установке MySQL 8.0 на CentOS 8 / RHEL 8.

Действия, упомянутые в этой статье, будут работать, только если вы включили подписку на RHEL 8 или настроили локальный репозиторий yum в своей системе.

Установите MySQL 8.0 на CentOS 8/RHEL 8

MySQL 8.0 доступен для CentOS 8 / RHEL 8 как из репозитория OS AppStream, так и из репозитория MySQL Dev Community.

1. Установите MySQL 8.0 из сообщества разработчиков MySQL

Добавьте официальный репозиторий MySQL для установки сервера сообщества MySQL.

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

Вывод:

Используйте команду dnf в CentOS/RHEL, чтобы установить последнюю стабильную версию MySQL. Временно отключите репозиторий AppStream, чтобы установить MySQL из сообщества разработчиков MySQL.

Вывод:

2. Установите MySQL 8.0 из AppStream

MySQL теперь доступен через Application Stream (Red Hat Enterprise Linux 8 для x86_64 — AppStream (RPM)) для RHEL 8 и CentOS 8. Таким образом, вам не нужно добавлять официальный репозиторий MySQL для установки сервера MySQL на 8.

Проверьте, включен ли репозиторий AppStream в RHEL 8, используя следующую команду.

Вывод:

Используйте команду dnf для установки последней версии MySQL.

Вывод:

Управление службой сервера MySQL

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

Включить сервер MySQL при запуске системы.

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

Вывод:

Защищенный сервер MySQL

Установлен MySQL из сообщества разработчиков MySQL

В CentOS 8/RHEL 8 исходный пароль root MySQL можно найти в /var/log/mysqld.log . Вы можете использовать приведенную ниже команду, чтобы получить пароль из файла журнала.

Вывод:

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

Вывод:

Установил MySQL из AppStream

В CentOS 8/RHEL 8 пароль для root-пользователя MySQL не устанавливается. Итак, мы запустим mysql_secure_installation, чтобы защитить вашу установку MySQL, установив пароль root, удалив анонимных пользователей, запретив удаленный вход root и т. д.

Вывод:

Работа с сервером MySQL

Войдите на сервер MySQL как пользователь root MySQL.

Вывод:

Установите phpMyAdmin

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

Примечания для MySQL 8.0, установленного из репозитория сообщества разработчиков MySQL:

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

Вы можете глобально отключить новый механизм паролей, поместив default-authentication-plugin=mysql_native_password в /etc/my.cnf (пользователи, созданные после этого изменения, будут иметь механизм аутентификации mysql_native_password) или вы можете вернуться к старой собственной аутентификации (mysql_native_password ) для отдельных пользователей (например, root), запустив ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '

<р>’; команда в терминале MySQL.

Заключение

В этой статье вы узнали, как установить MySQL 8.0 на CentOS 8 / RHEL 8. Поделитесь своим мнением в разделе комментариев.

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