Что хранится БД сайта и где она лежит?
Долгое время думал, что в базе MySQL хранится вся текстовая информация сайта. Но несколько раз во время сбоев на сервере замечал, что на сайте перестают отображаться одни блоки, но остаются другие.
Один раз при переносе сайта у базы не правильно сохранилась кодировка. Все статьи в ленте остались нормальными. Кракозябры появились только в боковых модулях - "последнее", "похожее", "комментарии" и т.д. Это значит, что статичные статьи хранятся не в базе, а в отдельных файлах?
Куда складывается база физически на сайте? Почему ее нельзя копировать/скачивать/закачивать напрямую, как файл, а нужно делать все операции через phpMyAdmin?
Понимаю, что вопросов много. Достаточно будет коротких ответов. На уровне действий и операций проблем нет. Все пока получается)))). Хочется чуть чуть понимать "физический смысл" своих действий.
Заранее спасибо!
Разделы форума
- Привлечение посетителей
- Интернет-магазины и корпоративные сайты
- Контент-проекты и сообщества
- Монетизация сайтов
- Реальные примеры, истории успеха
- Футурология и тренды
- Юридические и финансовые вопросы
- Тестирование сайтов, советы
- Технические вопросы
- Технические аспекты SEO
- Хостинг
- Реклама компаний и сервисов
- Объявления фрилансеров
- Работа, поиск исполнителей
- Сайты ищут рекламодателей
- Об этом сайте
Теги к теме Что хранится БД сайта и где она лежит?
Ну что хранится в файлах, а что в БД - это от CMS зависит.
PhpMyAdmin всего-лишь предоставляет интерфейс для простоты работы с сервером БД... фактически все что он делает можно делать напрямую запросами.
Причин может быть много. Один из вариантов -- движок кеширует часть блоков в такой форме, что кодировка уже не влияет. Соответственно, если сбросить кеш движка, то всё станет кракозябрами.
При установке MySQL на сервер определяется путь, где хранятся файлы с таблицами. Есть папки по названиям баз данных. А в них файлы по таблицам. На shared-хостинге доступа к файлам СУБД нет. Данные нужно вытягивать через SQL. phpMyAdmin -- один из интерфейсов. SQL-запросы можно задавать из юникс-шелла, из скриптов, через настольные приложения для управления СУБД.
Смотря как организована система. Есть такие, которые кэш хранят в БД, тогда у вас все будет криво отображаться.
Должно лечиться запросом "SET NAMES utf8", к примеру.
А вообще я настоятельно рекомендую изучит базу вашего сайта и часть кода системы для понимания процессов, невидимых глазу. Сразу куча нелепых вопросов пропадет.
Robotti, Дима, Мас, спасибо за ответы!
Особенно за идею по поводу кэширования. Даже не подумал, что может быть еще и этот фактор. Появилось несколько уточняющих вопросов, но лучше создам для них отдельную тему.
Получается, что сайт и база лежат в разных местах. И все, что их связывает (например, в Joomla) - это файл configuration.php? Только через него скрипт сайта может взаимодействовать со своей базой (находить ее)? Если я знаю имя и пасс базы соседа по виртуальному хостингу - мой сайт может "взаимодействовать" с его базой?
Если к CMS-ке приделан дополнительный форум как компонент (например, FireBoard в Joomla) - база форума при установке встраивается в базу самого сайта?
Думаю об этом уже давно. Не хочется (пока) сильно в это нырять - специализация совсем в другой области. А найти общее короткое описание не получается.
Есть еще вопрос по поводу работы с базами - пользователь базы. Каждый раз, при создании нового сайта на локалке - в phpMyAdmin создаю новую базу и нового пользователя. Нужно ли это делать или можно использовать (указывать) базу и пользователя от предыдущей сайто-сборки (если она уже не нужна)?
Или если создать новую базу - можно ли в качестве пользователя к ней указать уже существующего (который создавался для предыдущей базы)?
И примерно то же самое про хостинг - если на одном хост-аккаунте можно создать например 3БД (и 3 домена) - то можно ли к 3-м разным БД указать одного и того-же пользователя?
Если да, то стоит ли это делать с точки зрения безопасности?
> Или если создать новую базу - можно ли в качестве пользователя к ней указать уже существующего (который создавался для предыдущей базы)?
Обычно создается 1 пользователь и добавляется, как администратор к нескольким БД.
Можно в 1 БД складывать несколько сайтов. У многих систем/форумов даже есть такая опция - префикс у таблицы. Делаешь форуму префикс forum_, к сайту префикс site_ и сайт с форумом мирно уживаются в одной базе.
Вопрос с безопасностью использования сайта и форума в одной базе очевиден - если сломают базу сайта, то без проблем могут уничтожить и форум.
> И примерно то же самое про хостинг - если на одном хост-аккаунте можно создать например 3БД (и 3 домена) - то можно ли к 3-м разным БД указать одного и того-же пользователя?
> Если да, то стоит ли это делать с точки зрения безопасности?
Если к 3 БД прикрутить 1 пользователя, то следовательно взломав, слив данные конфига с параметрами доступа к БД, злоумышленник может получить доступ и к другим БД.
Другой вопрос как будет взломщик работать с БД, если обычно сервера MySQL закрыты из вне...
> Если к CMS-ке приделан дополнительный форум как компонент (например, FireBoard в Joomla) - база форума при установке встраивается в базу самого сайта?
Скорей всего в одной БД все.
Я ничего не понимаю!!! Аааа!!! Всех с новым годом!!!!