Как работать с базой данных Joomla?

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

База данных Joomla

Сразу хотелось бы отметить, что определение «база данных Joomla» не совсем правильно. CMS Joomla представляет собой систему управлению контентом, т.е. программу. А БД, которую программа использует, это совершенно отдельная технология, которую в своей работе могут использовать и другие, самые разные программы. Лучше все показать на конкретном примере. Допустим, вы работаете на компьютере и сохраняете на нем свою информацию. Другой пользователь также работает за данным компьютером и также хранит на нем информацию. Компьютер вами используется один, но данные, сохраненные на нем, разительно отличаются. Также CMS Joomla и иные программы могут в своей работе применять одну и ту же БД, сохраняя в ней необходимую информацию.
 
CMS Joomla в работе использует СУБД MySQL (система управления базами данных). Для новичков работа с этой СУБД кажется крайне сложной, поскольку для этого обязательно потребуется знание языка SQL (структурированные запросы). Отметим, что есть такой инструмент, который позволит успешно работать с MySQL даже тем, кто с языком SQL вообще не знаком. Название этого инструмента – phpMyAdmin. Его можно найти в составе Денвера и на любом хорошем хостинге.

PhpMyAdmin

phpMyAdmin является веб-приложением, написанным на языке PHP с открытым кодом, представляющим собой интерфейс для работы с СУБД MySQL. Этот интерфейс позволяет через веб-браузер осуществить администрирование сервера БД MySQL, давать команды SQL и смотреть содержимое баз данных и таблиц. Приложение достаточно сильно распространено среди веб-мастеров, т.к. с его помощью можно полностью управлять MySQL без лишнего ввода команд SQL, посредствам удобного и дружественного интерфейса.
 
Чтобы зайти в phpMyAdmin, который поставляется с Денвером, нужно в адресной строке вбить http://localhost (с учетом запущенного Денвера) и на появившейся странице перейти по ссылке «phpMyAdmin – администрирование MySQL», что в разделе Утилиты.
 
Так выглядит главная страница phpMyAdmin:
 
главная страница phpMyAdmin
 
В левой части можно выбрать необходимую БД, при этом просмотрев все имеющиеся в ней таблицы.
 
В phpMyAdmin предусмотрено множество настроек и функций, в которых новички часто путаются. Далее мы рассмотрим те их них, которые используются в работе с CMS Joomla.

Экспорт базы данных  Joomla

Экспорт БД может быть использован для того, чтобы изъять базу данных из MySQL и сохранить ее в качестве резервной копии или для дальнейшего переноса на интернет-хостинг. Для этого в левой колонке необходимо выбрать конкретную базу данных и нажать на «Экспорт»:
 
Экспорт базы данных
 
В открывшемся окне выделяем все таблицы выбранной БД и ставим галочку «Послать». Кроме того, также можно выбрать способ архивирования базы данных (gzip, zip). Однако, если БД небольших размеров, то этого делать не рекомендуется, т.к. порой могут возникнуть проблемы в процессе экспорта и дальнейшем импорте заархивированной БД.
 
 
После проведения настроек и нажатия на «Пошел» БД сохраниться в указанном вами месте.

Импорт базы данных Joomla

Импорт БД может быть осуществлен для того, чтобы залить сохраненную базу данных на веб-хостинг или же восстановить из бэкапа. Помимо этого, для импорта требуется слева выбрать необходимую БД, после чего нажать на кнопку «SQL»:
 
Импорт базы данных Joomla
 
 
Почему именно так организован импорт файлов не совсем понятно. Но сразу становится очевидно, что это крайне неудобно (отметим, что в обновленных версиях phpMyAdmin проблема была решена). После того, как вы нажмете кнопку «Импорт файлов», следует указать путь к новому файлу с БД, а также необходимую кодировку для данного файла. В большинстве случаев, такой кодировкой может быть или cp1251, или utf-8 (в том случае, если после импорта БД на сайте будет отображено что-то вроде китайских иероглифов, то кодировка была определена неверно). База данных импортируется после нажатия на кнопку «Пошел».

Восстановление пароля Joomla

Зачастую случается так, что веб-мастера напрочь забывают свой пароль от админки Joomla. Но с учетом наличия быстрого доступа к базе данных, его не так сложно изменить. Пароль любого пользователя сохранен в базе данных в не совсем нормальном виде, а виде хэша. Вся суть процессе хэширования состоит в том, что данные, которые не должны стать достоянием злоумышленников (в конкретном случае пароль), зашифрованы так, чтобы расшифровать их было невероятно сложно (вряд ли кому это удастся). Но, одновременно с этим, нужно, чтобы проверка соответствия вводимого пароля с паролем, который сохранен в БД, проходила очень быстро. Для решения такой задачи в работе БД использованы специальные функции, от которых можно без проблем получить решения, зная аргументы, и очень сложно получить аргумент, зная решения. Для большего понимание приведем наглядный пример: Y=25^X. Если мы знаем Х, то узнать, чему равен Y, очень легко, однако сложновато вычислить Y, который равен корню 25 степени из Х. Конечно, для компьютера решение таких задач, как говорится, семечки, но принцип приблизительно схожий.
 
Есть несколько способов смены имеющегося пароля. Меньше всего проблем должно возникнуть с подменой хэша забытого пароля на хэш того, который вы помните (дальше нужно будет просто зайти в админку по последнему паролю). Для этого выбираем базу данных и заходим в таблицу под названием «jos_users». Просматриваем ее, кликая на «Обзор»:
 
Восстановление пароля Joomla
 
 
Затем нажимаем на иконку с карандашом напротив администратора:
 
 
И меняем его хэш хэшем пароля, который вы знаете (этот пароль можно взять от другого пользователя, или с других сайтов в этом же месте БД, или воспользоваться этим паролем: 21232f297a57a5a743894a0e4a801fc3 (admin), только после смены его, конечно, лучше еще раз сменить в админке).