Advertisement
  1. Code
  2. Databases

Установка и использование PHPMyAdmin для веб-разработки

by
Read Time:6 minsLanguages:

Russian (Pусский) translation by Anna Goorikova (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

PHPMyAdmin (PMA) - отличный бесплатный веб-клиент с открытым исходным кодом, который может использоваться для более простого взаимодействия с MySQL и базами данных приложений. Я опишу, как установить его, защитить его и некоторые распространенные сценарии, с помощью которых он может помочь вам в администрировании базы данных. Вот онлайн-демо PMA для вас.

В дополнение к визуальному графическому интерфейсу для операций с базой данных, я также благодарен за возможность запуска команд SQL из командной строки через мой браузер без необходимости входа на сервер через SSH. Например, некоторые WiFi-соединения и мобильные точки доступа регулярно прерывают постоянные сеансы SSH, что делает работу с базой данных проблематичной.

Установка PHPMyAdmin

Начало работы с PMA довольно простое в Linux. Я опишу, как это сделать с Ubuntu 14.x в Digital Ocean. Войдите на свой сервер через SSH.

Вы можете использовать настройки по умолчанию во время установки или настроить их по своему усмотрению.

Как только вы ограничите доступ MySQL только к localhost (что вам нужно), в MySQL не будет портов для удаленного доступа для хакера, чтобы попытаться получить доступ. Они могут попытаться проникнуть через SSH или попробовать атаки SQL-инъекций на ваши приложения, но они не могут напрямую атаковать базу данных. После установки PMA кто угодно может запускать сетевые атаки против него, чтобы получить контроль над вашей базой данных, поэтому требуется тщательная проверка.

При настройке PMA рекомендуется несколько предосторожностей.

1. Используйте очень надежные пароли для всех ваших учетных записей MySQL, особенно для учетной записи root. например 25 символов для пароля root.

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

3. Измените URL-адрес по умолчанию, используемый PMA. Таким образом, люди не могут посетить http://yourblog.com/phpmyadmin. Хотя эта мера безопасности из-за неизвестности не является очень эффективным методом, она добавляет некоторую защиту.

Добавьте псевдоним в файл apache.conf:

Перезапустите apache:

Затем, чтобы получить доступ к PMA, посетите http://yourblog.com/myobscuredpma

Если вам нужно изменить свой пароль PHPMyAdmin, вы можете отредактировать config-db.php здесь:

nano /etc/phpmyadmin/config-db.php

4. Настройте веб-аутентификацию для сайта PMA. Это потребует ввода дополнительного пароля для доступа к PMA, в дополнение к вашему паролю базы данных, например:

Apache User Access RestrictionsApache User Access RestrictionsApache User Access Restrictions

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

Установите htpasswd как часть apache2-utils:

Создайте каталог для хранения ваших паролей:

Добавить поддержку htaccess для PMA:

nano /etc/phpmyadmin/apache.conf

Add AllowOverride All ниже

Настройте аутентификацию пользователя для PMA:

nano /usr/share/phpmyadmin/.htaccess

Установить свой пароль:

htpasswd -c /etc/htpasswd/.htpasswd username

И перезапустите Apache:

service apache2 restart

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

Использование PHPMyAdmin во время веб-разработки

1. Создание и удаление баз данных

Я считаю PMA особенно полезным на этапах разработки и тестирования, где я могу захотеть сбросить базу данных или выполнить резервное копирование.

Без PMA я бы выполнил вход на мой сервер через SSH. Войдите в MySQL, а затем запустите:

С помощью PMA вы можете запускать любой запрос командной строки с помощью визуального интерфейса. Перейдите на вкладку SQL и вставьте инструкции базы данных MySQL выше. Затем нажмите Перейти, чтобы создать базу данных.

Create a new database with the manual query boxCreate a new database with the manual query boxCreate a new database with the manual query box

Или вы можете напрямую использовать визуальный интерфейс:

Create a databaseCreate a databaseCreate a database

Вы также можете добавить пользователей и определить привилегии таким образом. Перейдите на вкладку привилегий:

Add new user in the privileges tabAdd new user in the privileges tabAdd new user in the privileges tab

Нажмите Add User и определите желаемые привилегии для базы данных:

Add new user and privilegesAdd new user and privilegesAdd new user and privileges

Для вашей обычной учетной записи базы данных вы можете установить флажки в квадратах Data и Structure.

Чтобы удалить базу данных, перейдите в меню Databases. Щелкните базу данных, которую вы хотите сбросить, и нажмите Drop:

Drop database with PHPMyAdminDrop database with PHPMyAdminDrop database with PHPMyAdmin

2. Резервное копирование базы данных

Это очень хорошая идея - делать резервное копирование базы данных приложений, прежде чем выполнять какие-либо расширенные операции над обновлением базы данных или кода. Если что-то пойдет не так, вы сможете восстановить свой сайт из резервной копии.

Используя веб-интерфейс PMA, нажмите на свою базу данных, откройте вкладку Export и выберите Custom.

Export your databaseExport your databaseExport your database

Включите "Add Drop Table / View / Procedure / Function / Event" statement":

Add drop table commandsAdd drop table commandsAdd drop table commands

Когда вы нажмете Go, PMA загрузит резервную копию всей вашей базы данных. Если у вас параметры таймаута PHP Apache неправильно настроены, некоторые продолжительные загрузки файлов могут превышать таймаут и завершаться неудачей. Вы можете настроить это в PHP.ini, как я описываю на своем сайте.

3. Тестирование запросов

PMA фантастически удобен для тестирования ваших SQL-запросов во время разработки. Когда я создал Geogram (см. также мой предстоящий урок MapApp on Tuts+), мне нужно было изучить и протестировать ряд сложных запросов геолокации, например, найти ближайший район к моему адресу. PMA сделал это намного проще.

Выберите свою базу данных, нажмите Query. Вставьте или отредактируйте сложные запросы и протестируйте их непосредственно из PMA:

Test complex queries with manual SQLTest complex queries with manual SQLTest complex queries with manual SQL

Когда я отработал свои запросы, мне было легче написать программный код ActiveRecord. Как пример:

4. Восстановление записей в базе данных

Если вы разработчик, у вас наверняка бывали ошибки в приложении, повреждающем вашу базу данных. Я прав?

Например, некоторые из моих приложений для управления электронной почтой иногда зацикливаются на необычных входящих сообщениях; эти ошибки трудно найти при обычном тестировании. Когда это происходит, я нашел полезным изменять базу данных напрямую с помощью PMA, чтобы разблокировать мои задачи и снова запустить сайт. В некоторых случаях просто возможность легко просматривать таблицы может помочь вам определить, что сломано.

В PMA откройте базу данных и выберите свою таблицу. Дважды щелкните по столбцу, чтобы редактировать его. Внесите необходимые изменения и кликните вне ячейки:

Edit data directly in the databaseEdit data directly in the databaseEdit data directly in the database

5. Сброс базы данных для миграции

Если вы используете фреймворк (например, Yii), вы можете использовать программную миграцию базы данных. Миграции баз данных упрощают разработку и обновление ваших приложений. Тем не менее, их тестирование может нарушить работу в локальной базе данных.

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

В PMA выберите свою базу данных, перейдите на вкладку SQL и введите SQL для удаления внешнего ключа или индекса. Вот несколько примеров:

Drop foreign key and indexDrop foreign key and indexDrop foreign key and index

Надеюсь, вы нашли урок полезным. Пожалуйста, размещайте любые комментарии, исправления или дополнительные идеи ниже. Вы можете просматривать мои другие уроки Tuts+ на моей странице автора или следовать за мной в Twitter @reifman.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.