Куда идем?

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

База данных Joomla

Стоит сказать, что формулировка «база данных Joomla» не совсем корректна. Joomla - это система управления контентом, или, проще говоря, программа. А база данных, используемая ею это отдельная технология, которую могут применять и другие программы.  Например, ты работаешь за компьютером и хранишь в нем свои данные. Кто-то другой также работает за этим компьютером и тоже хранит в нем свои данные.  Компьютер вы используете один, но информация, хранимая в нем, у вас сильно различается. Также Joomla и другие программы могут использовать одну и ту же базу данных, сохраняя в ней нужную информацию.

Joomla использует СУБД (систему управления базами данных) MySQL. Работа с этой СУБД для новичков является сложной задачей, поскольку требуется знание языка SQL (язык структурированных запросов). К счастью существует инструмент, позволяющий работать с MySQL, даже людям, не знакомым с языком SQL. Называется он phpMyAdmin, и имеется как в составе Денвера, так и на любом, уважающем себя хостинге.

PhpMyAdmin

phpMyAdmin - веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

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

Так выглядит стартовое окно phpMyAdmin:

1

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

В phpMyAdmin есть множество различных функций и настроек, в которых новичку легко запутаться. Мы рассмотрим только функции, наиболее используемые при работе с Joomla.

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

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

2

В появившемся окне нужно выделить все таблицы базы данных и поставить галочку «Послать». Также можно выбрать один из способов архивирования (zip, gzip), но если база данных небольшая, то это лучше не делать, поскольку иногда возникают проблемы при экспорте и последующем импорте заархивированной базы.

3

После выбора настроек и нажатия кнопки «Пошел» база данных будет сохранена.

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

Импорт базы данных Joomla используется для того, чтобы «закачать» сохраненную базу на хостинг, или восстановить ее из бэкапа. Для импорта также необходимо выбрать слева нужную базу, после чего нажать на кнопочку с надписью «SQL» (см. рисунок ниже).

4

5

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

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

Может так случиться, что ты забудешь пароль от админки. Имея доступ к базе данных Joomla, его можно легко поменять. Пароли пользователей хранятся в базе не в нормальном виде, а в виде так называемого хеша. Суть хеширования заключается в том, что информация, которая не должна попасть в чужие руки (в нашем случае пароли), зашифровывается таким образом, чтобы дешифровать ее было очень сложно (практически невозможно) и при этом можно было бы легко производить проверку соответствия введенного пароля с паролем, хранящимся в базе данных. Для решения такой задачи применяются  специальные функции, у которых легко получить решение, зная аргумент, и тяжело получить аргумент, зная решение. Чтобы было понятно, приведу простейший пример: Y= 23^X. Зная X, легко вычислитьY, но гораздо сложнее вычислить Y, равный корню 23 степени из X. Для компьютеров эта функция, конечно, «семечки», но принцип примерно такой.

Существует несколько способов смены пароля. Я предпочитаю просто подменять хеш забытого пароля хешем того, который я помню (далее остается просто зайти в админку с паролем, который я помню). Для этого после выбора базы данных нужно зайти в таблицу «jos_users» и просмотреть ее «Обзор»:

6

 

7

Далее, напротив администратора жмем картинку с карандашом:

8

и заменяем его(администратора) хеш хешем известного пароля (его можно взять либо от другого пользователя, либо с другого твоего сайта в этом же месте базы данных, либо использовать этот: admin = 21232f297a57a5a743894a0e4a801fc3 (пароль будет «admin»), только не забудь поменять его сразу после входа в админку)

9

Теперь ты знаешь, как работать с базой данных Joomla. Первые несколько раз phpMyAdmin может казаться незнакомым и сложным, но со временем ты привыкнешь его использовать, и все стандартные задачи будешь делать за несколько минут. А уж если изучишь язык SQL, то сможешь делать с базой данных все, что захочешь :-) .

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
2
О, как поменять пароль админа - это полезная информация! Особенно, пример пароля "админ" - если что, можно будет спастись)) Спасибо!
2
Виталий,

Ещё раз здравствуйте.
Объясните пожалуйста важную деталь:
Когда экспортируешь базу данных - она сохраняется как 1 файл с расширением sql.
Но ведь когда мы создаём сайт на локалхосте, то мы получаем целую директорию папок джумла!! Вопрос:
1. Допустим я создавал сайт на локал хосте и полностью его "запортачил" - и он полностью не открывается.
2. Допустим перед этим я сохранил базу данных в файл ...sql - когда всё ещё работало нормально.
3. Теперь я хочу восстановить сайт, для этого:

- я полностью удаляю все папки из директории моего сайта на локал хосте
- Полностью очищаю базу данных в phpMyAdmin
- phpMyAdmin теперь показывает 0 таблиц в базе данных, и директория папок сайта на диске пуста
- импортирую базу данных

4. Теперь база данных я так понимаю будет показывать все таблицы, которые были..... но ведь директория моего сайта на диске будет по прежденму пуста? phpMy Admin ведь заново не создаст все папки и файлы с которыми Джумла работала. А как же тогда Джумла теперь будет работать?

Скажите - именно так всё работает? или не нужно очищать от старых папок директорию "поломанного" сайта? Расскажите пожалуйста подробнее, как выглядит процесс восстановления сайта на локалхосте: нажать кнопку "экспорт/импорт" в phpMyAdmin - это понятно. А как быть с директориями привычных папок файлов? Достаточно ли просто нажать "импорт/экспорт" ничего не меняя в папках? Или надо заново восстановить директорию (переустановить джумла в директории для вебсайта?)
2
Антон, нужно делать резервную копию не только базы данных, но и файловой системы Joomla. Это можно сделать простым архивированием корневой папки с сайтом. При восстановлении восстанавливается как база данных, так и файловая система.
0
Уважаемый Wedal!
Я попробовал сделать экспорт своей БД, находящейся на хостинге. Но в панели PHPMyAdmin не нашел настройки, где указывать место для сохранения файла.
Подозреваю, что это где-то на хостинге. Поясните пожалуйста.
С благодарностью и уважением,
Игорь
1
Игорь, там есть место, где нужно поставить галочку, что-то вроде "Послать" или "Послать как файл".
-1
Уважаемый Виталий.
Всё-же остались тёмные пятна по ВОССТАНОВЛЕНИЮ своего вебсайта. Резервная копия базы данных - это конечно хорошо, но как я понял это лишь часть, которая нужна на случай "fatal mistake".

Расскажите по-порядку. Допустим у меня полностью накрылся мой сайт на локал хосте (или даже на сервере, разницы я так думаю нет, а если есть - подчеркните). Как его восстановить? Что именно нужно сохранить предварительно, чтобы были все нужные "части" для восстановления, скажем на другом компьютере или на другом сервере...., и как потом эти чести пошагово устанавливать?
Скажем я:
1. заново установил дэнвер,
2. заново установил джумлу (например из квик старта купленного шаблона, но уже ДЕМО_ДАННЫХ, по которому я делал сайт)
3. Загружаю через MySQL файл сохранённой базы данных - прям в дополнение к той, которая уже есть для этого сайта-шаблона - так?

Помогите пожалуйста с последовательностью шагов при восстановлении сайта "с нуля" или почти с нуля...
Я ещё не экспериментировал и не очень хочется всё потерять вследствие эксперимента.
0
редактирую:
.... 2. заново установил джумлу (например из квик старта купленного шаблона, но уже БЕЗ ДЕМО_ДАННЫХ, по которому я делал сайт).....
1
Антон, не совсем так. Резервная копия состоит из:
1) всех файлов Joomla(все, что есть в папке с вашим сайтом);
2) дампа базы данных сайта(т.е. БД, экспортированной в файл).

При восстановлении вы:
1)копируете все файлы сайта в папку, где они были раньше;
2) восстанавливаете базу данных из дампа(импортируете файл).

Вот и все. Если хочется более подробных инструкций, смотрите статью:
http://wedal.ru/khosting/tvojj-internet-chast-11-perenos-sajjta-s-denwer-na-khosting-hostgatorcom.html
Там о переносе сайта на хостинг, но смысл тот же.
-1
Здравствуйте, помогите пожалуйста восстановить БД. Восстанавливаю по описанному алгоритму.
При импорте phpMyAdmin выдает ошибку:

Ошибка
SQL-запрос:

-- -- Database: `db_rod` -- -- -------------------------------------------------------- -- -- Table structure for table `jos_banner` -- CREATE TABLE IF NOT EXISTS `jos_banner` ( `bid` int(11) NOT NULL AUTO_INCREMENT, `cid` int(11) NOT NULL DEFAULT '0', `type` varchar(30) NOT NULL DEFAULT 'banner', `name` varchar(255) NOT NULL DEFAULT '', `alias` varchar(255) NOT NULL DEFAULT '', `imptotal` int(11) NOT NULL DEFAULT '0', `impmade` int(11) NOT NULL DEFAULT '0', `clicks` int(11) NOT NULL DEFAULT '0', `imageurl` varchar(100) NOT NULL DEFAULT '', `clickurl` varchar(200) NOT NULL DEFAULT '', `date` datetime DEFAULT NULL, `showBanner` tinyint(1) NOT NULL DEFAULT '0', `checked_out` tinyint(1) NOT NULL DEFAULT '0', `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `editor` varchar(50) DEFAULT NULL, `custombannercode` text, `catid` int(10) unsigned NOT NULL DEFAULT '0', `description` text NOT NULL, `sticky` tinyint(1) unsigned NOT NULL [...]

Ответ MySQL:

#1046 - No database selected
0
Вопрос снят. Надо было сначала создать базу и выбрать ее, затем делать импорт.
0
При заходе на сайт выдает ошибка: Database Error: Unable to connect to the database:Could not connect to MySQL.На локалхосте все работало. Заранее спасибо.
1
bagus, Joomla не может подключиться к базе данных по параметрам, которые вы ввели, а именно:
- сервер БД,
- логин пользователя БД,
- пароль пользователя БД.
Перепроверьте их.
0
Здравствуйте! У меня возникла такая проблема: я добавил в существующую таблицу несколько своих полей. Одни раньше, другие позже. И вот теперь при запросе на все поля у меня те, которые создал позже, не достаются. Как будто их там вообще нет. Что можете посоветовать? Возможно, Джумла как-то кэширует поля в таблицах?
0

Цитирую Андрей:

Здравствуйте! У меня возникла такая проблема: я добавил в существующую таблицу несколько своих полей. Одни раньше, другие позже. И вот теперь при запросе на все поля у меня те, которые создал позже, не достаются. Как будто их там вообще нет. Что можете посоветовать? Возможно, Джумла как-то кэширует поля в таблицах?


Разобрался. Оказалось, неправильно подключал внешний файл.
0
Спасибо большое за помощь! Какой то гадский гад взломал мой сайт. Пришлось файлы перезалить, всё стало в норме, а вот в админку попасть не мог. Благодаря Вам разобрался с паролем через phpMyAdmin. Ещё раз Вам большое спасибо!!!
0
Подскажите пожалуйста, возможно ли переименовать базу данных? Дело в том, что я создал сайт с простым названием БД (magazin.sql), а на хостинге такое название неприемлимо. Как теперь быть? Неужели придется переделывать весь сайт?
0
Роман, при импорте БД на хостинг через PhpMyAdmin не имеет значения как она называется. Важны лишь имена таблиц БД, но не название файла дампа. Просто на хостинге предварительно нужно создать пустую базу данных, а затем импортировать в нее таблицы из локальной базы.
0
Доброго дня всем! почитал я тут вопросы и... Ну если у вас ребята хватило ума создать сайт, неужели трудно хотя бы раз в месяц делать бэкап сайта и копию всех файлов. Не знаю, может я чё-то не так делаю, но... Раз в месяц создаю бэкап указываю папку у себя на компе где он будет храниться и все файлы сайта сжимаю в архив и тоже на компе сохраняю. Я много раз из-за экспериментов своих обваливал свой сайт, но имея всё вышеперечисленное, я легко его восстанавливаю. Если с базой что не так я её тоже из бэкапа восстанавливаю. Правильно или нет я делаю, но сайт восстанавливал уже не раз. :lol:
0
Установил на сервере Joomla, создал пустую базу данных, в нее импортировал свою БД с локального копьютера, после этого админка не пускает ни под каким паролем, как-будто не проверяет его. Замена хэша через phpmyadmin не помогает. Что еще можно сделать. Да сайт при этом работает.
0
Денис, для начала сравните хэши паролей администратора на локалке и на хостинге. Если все совпадает - пробуем другой хостинг. Если там работает то либо переезжаем, либо бодаемся с текущим. Если нет, то пробуем другой браузер/компьютер.
0
Добрый день!На локальном сервере создал мини сайт на Джумле,теперь
мне нужно его дублировать, чтобы отдельно можно было работать и
видоизменять, и первый и второй сайт.
Пробовал на локальном сервере, просто создать еще одну папку с
новым именем, но они оказались взаимосвязанными.Изменяешь что-то в
одном сайте, изменяется так же и в другом. Подскажите новичку, как
правильно это сделать,и если не сложно пошагово.
С уважением. Евгений.
0
Евгений777, кроме файлов сайта нужно еще отделить базу данных. Читайте следующие статья этой серии. Там я рассказывал о переносе сайта на хостинг. Делайте все по аналогии, но хостингом у вас будет локальный сервер.
0
Пробовал с локальным сервером работать по аналогии с обычным,
Сложности возникли в пункте
2.3) Свяжи пользователя БД с БД:
Добавить пользователя к базе данных.
Где подобный раздел находится на локальном сервере?
Далее вопрос по пункту 3:
3) Настройка доступа по FTP
- в поле «сервер» нужно указать IP-адрес сервера хостинга.
Вопрос, где на локальном сервере можно увидеть его IP-адрес.

И вообще по данному вопросу в интернете,
я не нашел подробной информации,
может здесь разобрать эту тему поподробнее.
Дублирование сайта на локальном сервере?
0
Евгений777, если говорить о Денвере, то:

Цитата:

Добавить пользователя к базе данных. Где подобный раздел находится на локальном сервере?

http://localhost/denwer/Tools/addmuser/index.php
Там вы заводите сразу и базу и пользователя для нее. Связывать уже ничего не нужно.

Цитата:

- в поле «сервер» нужно указать IP-адрес сервера хостинга. Вопрос, где на локальном сервере можно увидеть его IP-адрес.

На локальном сервере работать через FTP не нужно. Вы просто работаете с файлами как обычно делаете это в операционной системе.
0
Большое спасибо,все получилось!
0
Приветствую Вас. У меня такой вопрос... Работал в Денвере, движок Joomla 1.5. Все шло своим чередом, но вдруг перестали открываться страницы из всех меню. Может я что в настройках сделал не так? Я уже все просмотрел по раз 15- не пойму. Сайт загружается на главной странице из закладки нормально, но если кликнуть на любой пункт меню, даже по ГЛАВНАЯ браузер выдает ошибку:
Not Found
The requested URL /home.html was not found on this server.
Подсказка Денвера
Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл E:/home/testsait/www/home.html, которого не существует.
Но статьи то есть, я же их редактирую и если поставить в настройках ГЛАВНАЯ ПО УМОЛЧАНИЮ, все открывается. Не знаю что делать. Помогите пожалуйста.
0
Александр, для начала попробуйте отключить SEF.
0
Доброе утро)
По некоторым причинам пришлось переустановливать винду,вместе с ней и Денвер(предворительно сделал бэкап сайта)Установил на на компе Денвер, создал пустую базу данных, в нее импортировал свою БД (все это происходит на локальном копьютере,не забывайте),создал пользователя,пароли все ввел в конфигурейшен.
САЙТ заработал!
Проблема в том,что когда хочу зайти в админку...http://localhost/sh2/administrator...после этого админки просто нет)) я даже пароли не могу ввести.Что можно сделать в этой ситуации,может кто сталкивался!?Сайт при этом работает.