Перейти к основному содержимому

phpMyAdmin — что это и где встретить

Разработчику

phpMyAdmin — инструмент с открытым исходным кодом (лицензия GPL), написанный на PHP. Он даёт графический доступ к задачам администрирования MySQL и MariaDB — создание баз и таблиц, выполнение SQL, управление пользователями, импорт и экспорт дампов. Официальное назначение сформулировано так: handle the administration of a MySQL or MariaDB database server.

phpMyAdmin — не отдельная СУБД и не замена серверу MySQL. Это клиент: тонкий слой между вами и уже запущенным сервером баз данных. Тот же результат можно получить в консоли mysql, в DBeaver или из PHP-кода через PDO — phpMyAdmin просто переводит клики и формы в SQL-запросы и показывает ответ сервера в HTML.

Учётные записи

При входе в phpMyAdmin вы вводите логин и пароль пользователя MySQL. Приложение не заводит своих пользователей — только проксирует аутентификацию в СУБД. Управление учётками MySQL делается через вкладку "Учётные записи" или SQL (CREATE USER, GRANT — см. MySQL — практика).


Словарь главы

ТерминКратко
СУБДСервер MySQL/MariaDB, который хранит данные и выполняет SQL
Клиент БДПрограмма, подключающаяся к СУБД: phpMyAdmin, mysql, PDO
mysqliРасширение PHP для протокола MySQL; им пользуется phpMyAdmin
Document rootКаталог веб-сервера, откуда отдаются файлы по URL
ДампФайл с SQL-командами для резервной копии или переноса БД
DDL / DMLЯзыки определения структуры и изменения данных — подробнее в статье 3
configuration storageСлужебная БД phpMyAdmin для закладок, истории, Designer — см. статью 4

Зачем phpMyAdmin разработчику

На локальной машине phpMyAdmin решает три практические задачи:

  • Быстро посмотреть данные — без написания скрипта можно открыть таблицу, отфильтровать строки, отредактировать поле.
  • Проверить схему — индексы, типы столбцов, внешние ключи видны на вкладке "Структура".
  • Импортировать дамп — после клонирования проекта или восстановления из бэкапа один файл .sql загружается через форму.

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


Как устроена работа

Цепочка запроса типична для PHP-приложения, работающего через HTTP:

КомпонентРоль
БраузерОтображает HTML-интерфейс; нужны cookies и JavaScript (Bootstrap 5 в phpMyAdmin 5.2)
Веб-серверОтдаёт файлы phpMyAdmin и передаёт запросы в PHP — см. настройку веб-сервера
PHPВыполняет логику, формирует SQL, обрабатывает загрузки файлов
СУБДПринимает SQL по протоколу MySQL (сокет или TCP, обычно порт 3306)

Что происходит при одном клике

  1. Браузер отправляет HTTP POST (например, форма входа или кнопка "Выполнить" на вкладке SQL).
  2. Веб-сервер передаёт запрос интерпретатору PHP.
  3. Скрипт phpMyAdmin открывает соединение через mysqli и отправляет SQL на сервер MySQL.
  4. СУБД выполняет запрос и возвращает результат (строки, ошибку или статус).
  5. PHP собирает HTML-таблицу или сообщение об ошибке и отдаёт его браузеру.

Связь с сервером БД идёт через расширение mysqli (рекомендуемый драйвер в современных версиях). phpMyAdmin можно разместить на той же машине, что и MySQL, или на отдельном хосте с сетевым доступом к порту СУБД — как и любой другой MySQL-клиент.

Разбор — минимальное подключение на PHP

Под капотом phpMyAdmin делает то же, что и ваш код, только с сотнями экранов поверх:

Код ITЗагрузка примера кода…

Строка / фрагментСмысл
$host = '127.0.0.1'TCP-подключение к локальному MySQL (аналог поля "Сервер" в форме входа)
mysqli_connect(...)Устанавливает сессию клиента; без неё SQL некуда отправить
'SHOW DATABASES'Служебный запрос — список баз; на главной phpMyAdmin вы видите тот же результат
mysqli_fetch_assocПострочное чтение ответа; в интерфейсе это превращается в HTML-таблицу

В реальном приложении используйте PDO с подготовленными запросами, а не конкатенацию SQL — phpMyAdmin же рассчитан на администратора, который осознанно пишет произвольный SQL.


Что умеет интерфейс

По документации 5.2, среди возможностей:

  • создание, просмотр, изменение и удаление баз, таблиц, представлений, столбцов и индексов;
  • выполнение, правка и закладки SQL, в том числе пакетных запросов;
  • импорт из SQL, CSV, XML, OpenDocument; экспорт в SQL, CSV, XML, PDF, OpenDocument и др.;
  • администрирование нескольких серверов из одной установки;
  • учётные записи и привилегии MySQL;
  • хранимые процедуры, функции, события, триггеры;
  • Designer — схема связей и экспорт в PDF;
  • QBE (Query-by-example) — визуальная сборка запросов с соединением таблиц;
  • отслеживание изменений (при настроенном configuration storage);
  • интерфейс на десятках языков, в том числе русский.

Подробности по операциям — в статьях SQL, DDL и DML и импорт, экспорт и FAQ.

Разбор — типичный SQL в вкладке "SQL"

После входа в базу shop разработчик часто выполняет такой набор:

-- Посмотреть структуру таблицы заказов
DESCRIBE orders;

-- Выборка с фильтром (DML)
SELECT id, customer_name, total
FROM orders
WHERE status = 'pending'
ORDER BY created_at DESC
LIMIT 20;

-- Добавить тестовую строку
INSERT INTO orders (customer_name, total, status)
VALUES ('Test User', 99.90, 'pending');
ЗапросЧто делает в phpMyAdmin
DESCRIBE ordersВкладка "Структура" таблицы orders — те же столбцы и типы
SELECT ... WHERE ...Вкладка "Обзор" с фильтром или результат на вкладке SQL
INSERT INTO ...Кнопка "Вставить" на вкладке "Обзор" генерирует похожий SQL

phpMyAdmin не проверяет бизнес-логику приложения: если у пользователя MySQL есть право DELETE, одна команда DELETE FROM orders удалит все строки. Права задаёт администратор СУБД, не интерфейс.

Горячие клавиши

Ускоряют навигацию, когда SQL-консоль уже открыта:

КлавишаДействие
kПоказать/скрыть консоль SQL
hДомашняя страница
sНастройки
d + sСтруктура базы (на странице БД)
d + fПоиск по базе
t + sСтруктура таблицы
t + fПоиск по таблице
BackspaceПредыдущая страница

В каких стеках встречается

phpMyAdmin часто входит в дистрибутив "веб-сервер + PHP + MySQL" для локальной разработки. Отдельная установка тоже возможна (Composer, Git, Docker).

Стек / средаКак открыть phpMyAdminПримечание
Open Server (OSP)http://127.0.0.1/openserver/phpmyadmin/, http://127.0.0.1/phpmyadmin, домен http://phpmyadmin.locВерсия и путь зависят от редакции панели; документация — в каталоге установки
XAMPPhttp://localhost/phpmyadmin (алиас на phpMyAdmin/)Windows/Linux/macOS; MySQL/MariaDB в комплекте
WAMP / WampServerhttp://localhost/phpmyadminАналог XAMPP для Windows
MAMPhttp://localhost:8888/phpMyAdmin/ (порт может отличаться)macOS / Windows
DenwerВиртуальный хост панели (классический стек под Windows)Исторический локальный пакет
AppServПуть из документации пакетаМеньше распространён сегодня
Laragonhttp://localhost/phpmyadminWindows, быстрая смена версий PHP/MySQL
DockerОбраз phpmyadmin, переменные PMA_HOST, PMA_USERУдобно для изолированных сред
Linux-дистрибутивыПакет phpmyadmin (Debian/Ubuntu — конфиг в /etc/phpmyadmin/)Отличается от "ванильного" config.inc.php в корне исходников
Локальный Open Server

После запуска MySQL/MariaDB в панели OSP типичные параметры клиента: хост 127.0.0.1, порт 3306, пользователь root, пароль пустой (только для локальной разработки). Подробнее — в разделе локальная среда PHP.

Разбор — phpMyAdmin в Docker Compose

Изолированная среда без установки XAMPP на хост — типичный фрагмент docker-compose.yml:

Код ITЗагрузка примера кода…

ПараметрЗачем
PMA_HOST: dbИмя сервиса БД в сети Docker — phpMyAdmin подключается к контейнеру db, не к localhost хоста
ports: "8080:80"Интерфейс доступен по http://localhost:8080
depends_onКонтейнер phpMyAdmin стартует после контейнера с MariaDB

Полная настройка установки и файла config.inc.php — в статье 2.

Безопасность на продакшене

На продакшене phpMyAdmin обычно закрывают от публичного интернета (VPN, IP whitelist, отдельный поддомен с HTTPS), потому что это мощный административный интерфейс с прямым доступом к данным. Альтернатива — SSH-туннель к MySQL и локальный клиент (Adminer, DBeaver, mysql CLI).


Первый вход

Пошагово — от запуска стека до списка баз на экране:

  1. Запустите веб-сервер, PHP и MySQL/MariaDB в выбранном стеке (Локальная среда разработки на PHP).
  2. Откройте URL phpMyAdmin из таблицы выше.
  3. Введите пользователя MySQL (часто root на локальной машине) и пароль.
  4. На главной странице отобразится список баз и серверная информация (версия MySQL, кодировка, uptime).

Если что-то пошло не так

СимптомВероятная причинаЧто проверить
Белый экранPHP не выполняется или fatal errorЛоги Apache/nginx, display_errors в dev
"Cannot connect"MySQL не запущен или неверный хост/портСлужба MySQL в панели стека, 127.0.0.1:3306
"Access denied"Неверный логин/парольУчётная запись в MySQL, не в phpMyAdmin
"кракозябры" в данныхНеверная кодировка соединенияРасширение mbstring, utf8mb4 на сервере БД
Пустой список базУ пользователя нет прав SHOW DATABASESGRANT или вход под root локально

Если страница пустая или кракозябры — проверьте версию PHP, расширение mbstring и кодировку соединения (utf8mb4 на сервере БД). Режимы входа (cookie, config, http) и параметры $cfg['Servers'] разбираются в следующей статье.


История

Кратко: MySQL-Webadmin (1997, Tobias Rautenberger) → phpMyAdmin (с 1998) → с 2001 года координация Marc Delisle → инициатива GoPHP5 и ветка 3.x+ под PHP 5.2+ и MySQL 5.

Параллельная линия для PostgreSQL — WebDB (2002) → переименование в phpPgAdmin; общие корни, разные драйверы (mysqli и pgsql).

Полная хронология с таблицами версий, сравнением с pgAdmin и Adminer — в статье История phpMyAdmin, phpPgAdmin и веб-админок БД на PHP. Краткое определение — в глоссарии.


См. также


Следующий шаг

Требования, установка и подключение — версии PHP и СУБД, файл config.inc.php, режимы cookie / config / http и параметры сервера в $cfg['Servers'].