G|Translate: English EN Français FR Deutsch DE Italiano IT Русский RU Español ES

База данных MySQL

5/5 - (1 голос)

Зачем вообще нужна какая-то база данных для сайта?

База данных MySQL

Что такое вообще сайт? Это обычный текстовый файл с расширением html (точнее — URL в строке браузера. может быть и без расширения). Браузер открывает ссылку, читает тэги и выводит на экран.

В самом простом варианте так

<html>
  <head>
  </head>
  <body>
   Hello, World
  </body>
</html>

Можете попробовать сохранить в блокноте index .html и кликнуть мышкой.

Поздравляем с Вашим первым сайтом!

И конечно, там в коде сайта еще есть:

  • вызовы картинок (они хранятся отдельно)
  • вызовы скриптов CSS
  • вызовы скриптов JavaScript
  • и прочее

И кстати.

Всё это передается простым текстовым содержимым (при использовании HTTP) между сервером и браузером — по пути его можно перехватить и дописать свои теги или вызвать JavaScript. Например, добавить вызов рекламного модуля.

Что бы этого не произошло — нужно передаваемое содержимое зашифровать. Сервер шифрует, отдает браузеру клиента, браузер расшифровывает и показывает. Читаем статью

Как включить https?

Но руками так создавать сайт неудобно и делать долго — поэтому попросим PHP генерировать тот же самый простой текст (через echo) и отдавать результат браузеру. Файл теперь будет index.php

<?php
$out_text = 'Hello, World';
echo '<html>'; 
echo '<head>'; 
echo '</head>'; 
echo '<body>'; 
echo $out_text;
echo '</body>'; 
echo '</html>';
?>

Теперь у нас вывод контента спрятан в переменной $out_text. Меняя переменную — мы меняем и вывод сайта в браузере.

В локальном варианте это работать не будет, т.к. обычно нет сервера PHP. Но можно забросить файл с расширением .php на сервер, вызвать его в строке браузера — и мы получит тот же самый результат:

  • сервер выполнит инструкции php
  • отдаст результат браузеру
  • браузер покажет сайт

Дома тоже можно установить локальный сервер — читаем статью

Denwer

Осталось решить вопрос — а где хранить нашу переменную $out_text с содержимым сайта?

Можно в файле, например site.php

<?php 
$out_text = 'Hello, World';
?>

и в файле index.php вызвать этот файл.

<?php
include 'site.php'; //появится переменная $out_text
echo '<html>'; 
echo '<head>'; 
echo '</head>'; 
echo '<body>'; 
echo $out_text;
echo '</body>'; 
echo '</html>';
?>

Переносим наши файлы через FTP для домена subdomen.seotable.ru

База данных MySQL

Читаем статью

Как создать домен 3-го уровня

Всё работает. Если открыть код сайта — то конечно, там уже никакого PHP нет. Код PHP сделал свое дело на сервере, взял переменную, собрал тэги HTML и отдал серверу.

База данных MySQL

Такое хранение переменных, например, сделано в WordPress для хранения базовых настроек (да, тот самый файл wp-config.php). Но страниц сайта может быть тысячи  — и все переменные сразу не имеет смысла загружать в память.

Тогда придумали базу данных :)

Где находится база данных на сервере

В папке /var/lib/mysql/имя базы (обычно)

База данных MySQL

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

Собственно в этих таблицах и хранятся «детали» Вашего сайта. Но фактическое место хранения пользователю особо не нужно.

Т.е. база данных на сервере — это:

  • папка с названием базы данных
  • файлы в папке — отдельные таблицы в базе
  • плюс служебные файлы

 

Есть оболочка phpMyAdmin, предназначенная для администрирования системы управления БД MySQL

  • можно сделать экспорт базы данных в один файл (.sql)
  • можно сделать импорт базы данных из файла
  • можно редактировать отдельные таблицы и данные в этих таблицах
  • можно создавать SQL-запросы к базе данных

База данных MySQL

Формат SQL запросов

Что бы что-нибудь найти в наших таблицах — существует специальный язык запросов к базе — SQL

Structured Query Language (язык структурированных запросов)

Самый простой SQL-запрос

SHOW VARIABLES;

выводит список переменных и их значений. Там их много, смотрим на datadir — это как раз место хранения базы данных на сервере.

База данных MySQL

Можно уточнить запрос и попросить показать только этот параметр

SHOW VARIABLES LIKE ‘datadir’;

Для поиска в таблицах используется запрос SELECT

SELECT ('столбцы или * для выбора всех столбцов; обязательно') 
FROM ('таблица; обязательно') 
WHERE ('условие/фильтрация, например, city = 'Moscow'; необязательно') 
GROUP BY ('столбец, по которому хотим сгруппировать данные; необязательно') 
HAVING ('условие/фильтрация на уровне сгруппированных данных; необязательно') 
ORDER BY ('столбец, по которому хотим отсортировать вывод; необязательно')

В результате запроса создается массив с данными. Если посмотреть служебные функции любой CMS — то там именно эти запросы :)

Вот, например, функции WordPress по выборке авторов постов из базы

$author_count = array();
foreach ( (array) $wpdb->get_results( "SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE " . get_private_posts_cap_sql( 'post' ) . ' GROUP BY post_author' ) as $row ) {
$author_count[ $row->post_author ] = $row->count;

Более подробно можно прочитать в статье 

SQL запросы быстро

Наиболее известные базы данных для сайтов

База данных MySql

 База данных MySQL

MySql (он же «мускул») — наиболее популярная база данных для веб-разработки. В 90% случаев на хостинге будет именно она.

Разработана компанией Sun, потом продукт был куплен компанией Oracle.

База -> Папка -> Файлы для таблиц. Но это еще не конец кроличьей норы. Для управления базой данных используется соответствующее программное обеспечение, так вот у MySql есть два варианта:

  • InnoDB
  • MyISAM

Это два разных движка базы данных (для разных типов таблиц), причем на одном сервере у хостера может быть оба варианта :)

Главное преимущество InnoDB в скорости работы — при выполнении запроса к базе InnoDB происходит блокировка строки. При выполнении запроса к базе MyISAM блокируется таблица Это означает, что пока запрос выполнен не будет — никакие другие обращения к таблице/строке будут невозможны.

Поскольку строки значительно меньше — InnoDB работает намного быстрее. Разработчики с версии 5.5 сделали движок InnoDB дефолтным.

 

База данных MariaDB

Альтернативная база данных для замены MySql. Полностью совместима по формату базы данных (т.е. структуре таблиц) и формату SQL-запросов.

Движок (который управляет базой данных) разработан свой.

База данных MySQL

Точнее — их тоже два варианта.

  • замена MyISAM — движок Aria
  • замена InnoDB — движок XtraDB

Полностью обратно совместима с InnoDB, в том числе по формату файлов, и идентифицирует себя в MariaDB как «ENGINE = InnoDB», и поэтому может быть использован в качестве замены для стандартного InnoDB.

Основное преимущество XtraDB  — поддержка многоядерных и многопроцессорных систем.

 

 


Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла



Вы будете видеть наш сайт у себя в ленте


Нажмите "Подписаться"


Нажмите "Нравится" или напишите сообщение



Почитать в разделе: CMS — ЧТО ЭТО?

  • Всего статей в разделе: 3
  • Показано статей в списке: 2
  • Сортировка: название по алфавиту

Denwer

Denwer...
(Читать полностью...)

Подключение MySQL к CMS

При установке CMS хостинг процесс происходит автоматически, установщик запрашивает название базы, иногда префикс записей, пользователя и его пароль. Все это куда-то заносится - и потом можно работать с CMS, создавать сайт. Но вот Вы вошли на хостинг и добрый робот Вам напоминает, что давно не меняли пароль базы MySQL, надо сменить. Да, пожалуйста. Упс, сайт упал...... Конечно сайт перестал работать, его CMS не знает этого нового пароля и не может подключиться к базе MySQL. А где, в каком файле это записано (а их там 3000 штук) - сразу далеко не очевидно. Ниже собрана информация для основных CMS, в каких файлах хранится эта информация о подключении. Схема простая - перекачиваете себе...
(Читать полностью...)