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

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'].