Установка и настройка MySQL и phpMyAdmin в Kali Linux


Оглавление

1. Для чего нужна MySQL

2. Клиент и сервер MySQL

3. Установка MySQL в Kali Linux

4. В Kali Linux MySQL заменена на MariaDB

5. Настройка MySQL в Kali Linux

6. Запуск и включение автозапуска MySQL

7. Установка и изменение пароля MySQL. Сброс забытого пароля MySQL/MariaDB

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

9. Как сменить пароль пользователя MySQL в Kali Linux

10. Отсутствие пароля и пустой пароль MySQL

11. Как установить phpMyAdmin в Kali Linux

12. Как поменять URL адрес phpMyAdmin

13. Ошибка «Login without a password is forbidden by configuration (see AllowNoPassword)»

14. Как пользоваться phpMyAdmin в Kali Linux

15. Альтернатива phpMyAdmin

16. Дополнительные материалы по MySQL


Для чего нужна MySQL

MySQL - это система управления базами данных, позволяет создавать, хранить, изменять базы данных. Очень часто используется в паре с PHP для хранения баз данных веб-сайтов. Также может использоваться в качестве хранилища данных любой программы или инструмента.

phpMyAdmin - это веб-приложение, написанное на PHP, которое является графическим интерфейсом для MySQL, позволяет работать с данными, в том числе просматривать их, изменять, импортировать и экспортировать в веб-интерфейсе. Для работы phpMyAdmin необходим веб сервер (Apache), а также PHP и MySQL.

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

Клиент и сервер MySQL

MySQL состоит из двух основных компонентов: сервер и клиент.


Сервер MySQL это та самая СУБД, которая обеспечивает работу баз данных. Сервер необходим для работы БД.

Клиент MySQL - это утилита для подключения к серверу. Клиент нужен если вы хотите подключаться к серверу MySQL в командной строке.

Установка MySQL в Kali Linux

Если вы уже работали с производными Debian (Linux Mint, Ubuntu), то в них присутствуют два пакета:

  • mysql-server - сервер MySQL
  • mysql-client - клиент MySQL

По умолчанию MySQL уже предустановлена в Kali Linux, но если у вас минимальная сборка, то вам может понадобиться установить СУБД вручную. Если вы попытаетесь установить пакет mysql-server, то получите следующую ошибку:

Пакет mysql-server недоступен, но упомянут в списке зависимостей другого
пакета. Это может означать, что пакет отсутствует, устарел или
доступен из источников, не упомянутых в sources.list

E: Для пакета «mysql-server» не найден кандидат на установку

Дело в том, что в Kali Linux (и видимо в свежих Debian, а также во всех её производных) этот пакет называется по-другому:

  • default-mysql-server (исполнимые файлы СУБД и настройка системной базы данных)
  • default-mysql-server-core (только исполнимые файлы СУБД)

Поэтому для установки MySQL используйте следующую команду:

sudo apt install default-mysql-server

В Kali Linux MySQL заменена на MariaDB

Мы говорим MySQL, но MySQL полностью отсутствует в репозиториях Kali Linux. Независимо от того, была ли эта СУБД предустановлена в вашу систему или вы установили её вручную, вместо неё устанавливается MariaDB.

Вы можете убедиться в этом сами командой:

apt show default-mysql-server

Повторюсь, MySQL отсутствует в репозиториях Kali Linux и если вам нужна именно MySQL, а не MariaDB, то вам придётся это решать или подключением дополнительного репозитория, либо ручной установкой скаченного файла.

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

Настройка MySQL в Kali Linux

Конфигурационные файлы MySQL:

  • /etc/mysql/my.cnf (ссылка на /etc/alternatives/my.cnf)
  • /etc/mysql/debian.cnf (устаревший файл, будет удалён в будущих версиях)
  • /etc/mysql/conf.d/mysql.cnf
  • /etc/mysql/conf.d/mysqldump.cnf
  • /etc/mysql/mariadb.conf.d/50-client.cnf
  • /etc/mysql/mariadb.conf.d/50-mysqld_safe.cnf
  • /etc/mysql/mariadb.conf.d/60-galera.cnf
  • /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
  • /etc/mysql/mariadb.conf.d/50-server.cnf

Большинство настроек собраны в файле 50-server.cnf. По умолчанию служба MySQL прослушивает входящие подключения только на localhost (невозможны подключения с других компьютеров).


Запуск и включение автозапуска MySQL

Для запуска службы выполните команду:

sudo systemctl start mysql

По умолчанию все сетевые службы отключены от автозапуска, подробности смотрите в статье «Настройка и запуск Apache, MySQL, SSH и PostgreSQL в Kali Linux».

Для включения автозапуска MySQL при каждом включении компьютера выполните команду:

sudo systemctl enable mysql

Установка и изменение пароля MySQL. Сброс забытого пароля MySQL/MariaDB

Для только что установленной MySQL пароль пользователя root является пустым. Чтобы его изменить запустите и следуйте инструкциям:

sudo mysql_secure_installation

Подробное описание шагов и перевод инструкций смотрите в статье «Какой пароль рута MySQL в Kali Linux / Как сбросить пароль рута MySQL в Kali Linux». В этой же статье смотрите, как сбросить пароль, если вы его забыли.

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

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

mysql -u ПОЛЬЗОВАТЕЛЬ -p -h ХОСТ

Все три опции являются необязательными.

Если пропущена опция -u, то в качестве имени пользователя MySQL будет использоваться текущее имя пользователя в ОС.

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

Если не указать опцию -h, то будет сделана попытка подключения к локальному серверу.

Попытка подключения, когда не установлен пароль пользователя:

mysql -u root

Это вызовет ошибку:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Суть проблемы в том, что по умолчанию используется аутентификация unix_socket, то есть когда имя пользователя ОС совпадает с именем пользователя в MySQL/MariaDB, то пароль вовсе не нужно вводить. Но другой пользователи не может войти от имени другого пользователя, поэтому, чтобы войти как root, нужно использовать sudo. Подробности смотрите в статье «Аутентификация по паролю и unix_socket в MySQL и MariaDB».

Можно выбрать один из вариантов:

1. Всегда использовать sudo:


mysql -u root

2. Внести изменения в настройки MySQL, чтобы к СУБД могли подключаться и обычные пользователи.

3. Создать нового пользователя MySQL. Если это будет пользователь с таким же именем как ваше имя в ОС, то тогда можно использовать аутентификацию по unix_socket и не вводить пароль при подключении. Либо можно выбрать аутентификацию по паролю и использовать любое имя.

Для получения доступа к базе данных MariaDB обычному пользователю без использования sudo привилегий (это также установит пароль пользователя root), зайдите в приглашение командной строки MySQL

sudo mysql

и запустите следующие SQL команды:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';
exit

Обратите внимание, что вам нужно ввести ПАРОЛЬ.

Затем попробуйте войти в базу данных без sudo, как показано ниже.

mysql -u root -p

Как сменить пароль пользователя MySQL в Kali Linux

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

Зайдите в приглашение командной строки MySQL (используйте либо sudo, либо опцию -u, чтобы выполнить вход как root):

mysql -u root -p

и запустите следующие команды:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ ПАРОЛЬ';
exit

Обратите внимание, что вам нужно ввести НОВЫЙ ПАРОЛЬ.


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

ALTER USER 'ПОЛЬЗОВАТЕЛЬ'@'localhost' IDENTIFIED BY 'НОВЫЙ ПАРОЛЬ';

Отсутствие пароля и пустой пароль MySQL

Если вы работаете исключительно на localhost’е и проблемы безопасности вас не волнуют, то для удобства можно установить пустой пароль (не делайте этого, если вы не до конца понимаете возможные риски):

ALTER USER 'root'@'localhost' IDENTIFIED BY '';

В этом случае при подключении можно не использовать опцию -p:

mysql -u root

Как установить phpMyAdmin в Kali Linux

По умолчанию phpMyAdmin не установлен в Kali Linux.

Установку можно выполнить двумя способами:

  1. Поскольку phpMyAdmin это веб-приложение на PHP, то можно просто скачать архив с исходным кодом (скриптами) и распаковать в любую папку на сервере.
  2. В большинстве дистрибутивов в стандартных репозиториях имеется установочный пакет phpMyAdmin. Преимущество этого подхода - вам не нужно следить за выходом новых версий phpMyAdmin и делать обновления вручную.

Я предпочитаю устанавливать phpMyAdmin из стандартных репозиториев (а WordPress, напротив, предпочитаю устанавливать просто копируя папку с файлами WordPress в папку веб-сервера; благодаря этому я контролирую процесс обновления; если действительно нужно обновиться, то всё это делается в удобном веб-интерфейсе самой WordPress).

У вас уже должны быть установлены Apache, MySQL, PHP. По умолчанию они уже имеются в Kali Linux, но если у вас версия с минимальным количеством пакетов, то установите их:

sudo apt install apache2 default-mysql-server php

Устанавливаем phpMyAdmin следующей командой:

sudo apt install phpmyadmin

Ответьте «Нет» на запрос о настройки с dbconfig-common:

Для перехода между пунктами используйте клавишу Tab, а для нажатия Enter.

Выберите «apache2».

Для выбора пунктов используйте клавишу Пробел, для перехода между пунктами используйте клавишу Tab, а для нажатия Enter.

Теперь, после включения веб-сервера, phpMyAdmin будет доступен по адресу https://IP_адрес_вашего_сервера/phpmyadmin/

А для локального сервера по адресу http://localhost/phpmyadmin/

Не забудьте запустить службы:

sudo systemctl start apache2
sudo systemctl start mysql

Внизу страницы phpMyAdmin вы можете увидеть сообщения на красном фоне:

Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину.
Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.

Если вам интересно, какие расширенные функции имеются ввиду, то обратитесь к разделу «Дополнительная настройка phpMyAdmin».

Если вы хотите только их включить, то перейдите по ссылке http://localhost/phpmyadmin/chk_rel.php и кликните "Создать базу данных".

После этого все новые функции будут активированы.

Как поменять URL адрес phpMyAdmin. Как включить и отключить phpMyAdmin

Если при установке phpMyAdmin вы выбрали не настраивать его для использованием с веб-сервером Apache, то для включения phpMyAdmin используйте команду:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/

Чтобы изменения вступили в силу, перезагрузите веб-сервер.

Чтобы отключить phpMyAdmin, используйте команду:

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

Чтобы изменения вступили в силу, перезагрузите веб-сервер.

В файле /etc/phpmyadmin/apache.conf есть важная строка:

Alias /phpmyadmin /usr/share/phpmyadmin

Суть её в том, что URL адресу /phpmyadmin (например, http://localhost/phpmyadmin) начинает соответствовать папка /usr/share/phpmyadmin. То есть файлы (скрипты) phpMyAdmin физически расположены в /usr/share/phpmyadmin, а не в директории веб-сервера (например, /var/www/html/).

Подробности о директиве Alias вы можете почитать в статье «Модуль Apache mod_alias».

Многие автоматические сканеры «скрытых» файлов и папок веб-сервера и сайтов обязательно проверяют директории «phpmyadmin», «pma» и другие подобные. Вы можете хорошо спрятать ваш phpMyAdmin изменив Alias. Например:

Alias /lkjgler94345 /usr/share/phpmyadmin

Теперь phpMyAdmin станет доступен по адресу http://localhost/lkjgler94345 - такое найти непросто.

Ошибка «Login without a password is forbidden by configuration (see AllowNoPassword)»

При попытке входа в phpMyAdmin с пустым паролем вы можете получить ошибку:

Login without a password is forbidden by configuration (see AllowNoPassword)

Суть в том, что вход без пароля запрещён конфигурацией phpMyAdmin.

Два способа исправления:

  • установите пароль MySQL
  • в конфигурации phpMyAdmin разрешите вход без пароля.

Чтобы разрешить вход без пароля в phpMyAdmin, откройте файл /etc/phpmyadmin/config.inc.php:

sudo gedit /etc/phpmyadmin/config.inc.php

Найдите вторую (их там две) строку

// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

Раскомментируйте её, чтобы получилось:

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

Сохраните и закройте файл config.inc.php.

Как пользоваться phpMyAdmin в Kali Linux

Работа в phpMyAdmin интуитивно понятна, поэтому сложностей не должно возникнуть.

Но по умолчанию в PHP установлены очень маленькие лимиты на размер обрабатываемого файла, поэтому если вы импортируете или экспортируете большую базу данных, то можете столкнуться с ошибкой phpMyAdmin «Incorrect format parameter», о том, как её исправить, смотрите эту статью.

Если вы много работаете с phpMyAdmin, то вы можете настроить его под себя, в том числе установить настройки по умолчанию для импорта и экспорта. Пример как это сделать в статье «Как в phpMyAdmin поменять настройки экспорта по умолчанию».

Альтернатива phpMyAdmin

Обратите внимание, что phpMyAdmin - это «прокладка», которая средствами PHP выполняет действия с базами данных. Поэтому появляются потери в скорости при обработке очень больших баз данных, а также можно столкнуться с лимитами PHP, установленными в его конфигурационном файле.

Импорт и экспорт больших баз данных в MySQL можно выполнять средствами самой MySQL - с СУБД поставляются вспомогательные утилиты, которые позволяют выполнять разнообразные действия. Об этом смотрите в статье «Как импортировать и экспортировать базы данных в MySQL или MariaDB», в которой рассказывается об утилите mysqldump.

Редактировать базы данных, вносить новые записи, удалять записи и прочее вы можете делать в командной строке с помощью SQL запросов. Об основах языка запросов SQL смотрите в статье «Изучение MySQL / MariaDB для начинающих».

Дополнительные материалы по MySQL

Вас также могут заинтересовать следующие статьи:


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *