Вся изменяющаяся информация сайта хранится в базе данных 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:
В левой части этого окна можно выбрать нужную базу данных, увидев при этом все входящие в нее таблицы.
В phpMyAdmin есть множество различных функций и настроек, в которых новичку легко запутаться. Мы рассмотрим только функции, наиболее используемые при работе с Joomla.
Экспорт базы данных Joomla
Экспорт базы данных используется для того, чтобы извлечь отдельную базу из MySQL и сохранить ее на компьютере, как резервную копию или с целью последующего переноса на хостинг. Для экспорта в левой колонке нужно выбрать нужную базу данных и нажать кнопку «Экспорт»:
В появившемся окне нужно выделить все таблицы базы данных и поставить галочку «Послать». Также можно выбрать один из способов архивирования (zip, gzip), но если база данных небольшая, то это лучше не делать, поскольку иногда возникают проблемы при экспорте и последующем импорте заархивированной базы.
После выбора настроек и нажатия кнопки «Пошел» база данных будет сохранена.
Импорт базы данных Joomla
Импорт базы данных Joomla используется для того, чтобы «закачать» сохраненную базу на хостинг, или восстановить ее из бэкапа. Для импорта также необходимо выбрать слева нужную базу, после чего нажать на кнопочку с надписью «SQL» (см. рисунок ниже).
Почему импорт файлов так спрятан я не знаю, но очевидно, что это не очень удобно (в последних версиях phpMyAdmin этот недочет исправлен). После нажатия кнопки «Импорт файлов» появится окно, в котором нужно указать путь к файлу с базой данных, а также правильную кодировку этого файла. Обычно это utf-8 или cp1251 (Если после импорта базы на сайте вместо букв будут «кракозябры», то кодировка указана не правильно). После нажатия кнопки «Пошел», база данных будет импортирована.
Восстановление пароля Joomla
Может так случиться, что ты забудешь пароль от админки. Имея доступ к базе данных Joomla, его можно легко поменять. Пароли пользователей хранятся в базе не в нормальном виде, а в виде так называемого хеша. Суть хеширования заключается в том, что информация, которая не должна попасть в чужие руки (в нашем случае пароли), зашифровывается таким образом, чтобы дешифровать ее было очень сложно (практически невозможно) и при этом можно было бы легко производить проверку соответствия введенного пароля с паролем, хранящимся в базе данных. Для решения такой задачи применяются специальные функции, у которых легко получить решение, зная аргумент, и тяжело получить аргумент, зная решение. Чтобы было понятно, приведу простейший пример: Y= 23^X. Зная X, легко вычислитьY, но гораздо сложнее вычислить Y, равный корню 23 степени из X. Для компьютеров эта функция, конечно, «семечки», но принцип примерно такой.
Существует несколько способов смены пароля. Я предпочитаю просто подменять хеш забытого пароля хешем того, который я помню (далее остается просто зайти в админку с паролем, который я помню). Для этого после выбора базы данных нужно зайти в таблицу «jos_users» и просмотреть ее «Обзор»:
Далее, напротив администратора жмем картинку с карандашом:
и заменяем его(администратора) хеш хешем известного пароля (его можно взять либо от другого пользователя, либо с другого твоего сайта в этом же месте базы данных, либо использовать этот: admin = 21232f297a57a5a743894a0e4a801fc3 (пароль будет «admin»), только не забудь поменять его сразу после входа в админку)
Теперь ты знаешь, как работать с базой данных Joomla. Первые несколько раз phpMyAdmin может казаться незнакомым и сложным, но со временем ты привыкнешь его использовать, и все стандартные задачи будешь делать за несколько минут. А уж если изучишь язык SQL, то сможешь делать с базой данных все, что захочешь :-) .
Ещё раз здравствуйте.
Объясните пожалуйста важную деталь:
Когда экспортируешь базу данных - она сохраняется как 1 файл с расширением sql.
Но ведь когда мы создаём сайт на локалхосте, то мы получаем целую директорию папок джумла!! Вопрос:
1. Допустим я создавал сайт на локал хосте и полностью его "запортачил" - и он полностью не открывается.
2. Допустим перед этим я сохранил базу данных в файл ...sql - когда всё ещё работало нормально.
3. Теперь я хочу восстановить сайт, для этого:
- я полностью удаляю все папки из директории моего сайта на локал хосте
- Полностью очищаю базу данных в phpMyAdmin
- phpMyAdmin теперь показывает 0 таблиц в базе данных, и директория папок сайта на диске пуста
- импортирую базу данных
4. Теперь база данных я так понимаю будет показывать все таблицы, которые были..... но ведь директория моего сайта на диске будет по прежденму пуста? phpMy Admin ведь заново не создаст все папки и файлы с которыми Джумла работала. А как же тогда Джумла теперь будет работать?
Скажите - именно так всё работает? или не нужно очищать от старых папок директорию "поломанного" сайта? Расскажите пожалуйста подробнее, как выглядит процесс восстановления сайта на локалхосте: нажать кнопку "экспорт/импорт" в phpMyAdmin - это понятно. А как быть с директориями привычных папок файлов? Достаточно ли просто нажать "импорт/экспорт" ничего не меняя в папках? Или надо заново восстановить директорию (переустановить джумла в директории для вебсайта?)
Я попробовал сделать экспорт своей БД, находящейся на хостинге. Но в панели PHPMyAdmin не нашел настройки, где указывать место для сохранения файла.
Подозреваю, что это где-то на хостинге. Поясните пожалуйста.
С благодарностью и уважением,
Игорь
Всё-же остались тёмные пятна по ВОССТАНОВЛЕНИЮ своего вебсайта. Резервная копия базы данных - это конечно хорошо, но как я понял это лишь часть, которая нужна на случай "fatal mistake".
Расскажите по-порядку. Допустим у меня полностью накрылся мой сайт на локал хосте (или даже на сервере, разницы я так думаю нет, а если есть - подчеркните). Как его восстановить? Что именно нужно сохранить предварительно, чтобы были все нужные "части" для восстановления, скажем на другом компьютере или на другом сервере...., и как потом эти чести пошагово устанавливать?
Скажем я:
1. заново установил дэнвер,
2. заново установил джумлу (например из квик старта купленного шаблона, но уже ДЕМО_ДАННЫХ, по которому я делал сайт)
3. Загружаю через MySQL файл сохранённой базы данных - прям в дополнение к той, которая уже есть для этого сайта-шаблона - так?
Помогите пожалуйста с последовательностью шагов при восстановлении сайта "с нуля" или почти с нуля...
Я ещё не экспериментировал и не очень хочется всё потерять вследствие эксперимента.
.... 2. заново установил джумлу (например из квик старта купленного шаблона, но уже БЕЗ ДЕМО_ДАННЫХ, по которому я делал сайт).....
1) всех файлов Joomla(все, что есть в папке с вашим сайтом);
2) дампа базы данных сайта(т.е. БД, экспортированной в файл).
При восстановлении вы:
1)копируете все файлы сайта в папку, где они были раньше;
2) восстанавливаете базу данных из дампа(импортируете файл).
Вот и все. Если хочется более подробных инструкций, смотрите статью:
http://wedal.ru/khosting/tvojj-internet-chast-11-perenos-sajjta-s-denwer-na-khosting-hostgatorcom.html
Там о переносе сайта на хостинг, но смысл тот же.
При импорте 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
- сервер БД,
- логин пользователя БД,
- пароль пользователя БД.
Перепроверьте их.
Разобрался. Оказалось, неправильно подключал внешний файл.
мне нужно его дублировать, чтобы отдельно можно было работать и
видоизменять, и первый и второй сайт.
Пробовал на локальном сервере, просто создать еще одну папку с
новым именем, но они оказались взаимосвязанными.Изменяешь что-то в
одном сайте, изменяется так же и в другом. Подскажите новичку, как
правильно это сделать,и если не сложно пошагово.
С уважением. Евгений.
Сложности возникли в пункте
2.3) Свяжи пользователя БД с БД:
Добавить пользователя к базе данных.
Где подобный раздел находится на локальном сервере?
Далее вопрос по пункту 3:
3) Настройка доступа по FTP
- в поле «сервер» нужно указать IP-адрес сервера хостинга.
Вопрос, где на локальном сервере можно увидеть его IP-адрес.
И вообще по данному вопросу в интернете,
я не нашел подробной информации,
может здесь разобрать эту тему поподробнее.
Дублирование сайта на локальном сервере?
http://localhost/denwer/Tools/addmuser/index.php
Там вы заводите сразу и базу и пользователя для нее. Связывать уже ничего не нужно.
На локальном сервере работать через FTP не нужно. Вы просто работаете с файлами как обычно делаете это в операционной системе.
Not Found
The requested URL /home.html was not found on this server.
Подсказка Денвера
Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл E:/home/testsait/www/home.html, которого не существует.
Но статьи то есть, я же их редактирую и если поставить в настройках ГЛАВНАЯ ПО УМОЛЧАНИЮ, все открывается. Не знаю что делать. Помогите пожалуйста.
По некоторым причинам пришлось переустановливать винду,вместе с ней и Денвер(предворительно сделал бэкап сайта)Установил на на компе Денвер, создал пустую базу данных, в нее импортировал свою БД (все это происходит на локальном копьютере,не забывайте),создал пользователя,пароли все ввел в конфигурейшен.
САЙТ заработал!
Проблема в том,что когда хочу зайти в админку...http://localhost/sh2/administrator...после этого админки просто нет)) я даже пароли не могу ввести.Что можно сделать в этой ситуации,может кто сталкивался!?Сайт при этом работает.