LXF169:Рубрика сисадмина
|
|
|
Содержание |
По рецептам доктора Брауна
Эзотерическое системное администрирование из причудливых заворотов кишок серверной
ImageMagick
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Рассмотрим утилиту, которая делает с изображениями все, что ни пожелаешь, разве что не рисует их.
Так как мой раздел посвящен системному администрированию, то, решив привлечь ваше внимание к удивительному набору утилит управления изображениями под названием ImageMagick, я немного сойду с лыжни. Идея о наборе утилит для редактирования изображений, работающих чисто в командной строке, может удивить даже самых опытных любителей Linux, но ImageMagick именно таков (хотя для некоторых операций есть оболочка в виде меню).
От широты возможностей ImageMagick захватывает дух. Хотя им нельзя закрасить на фото усы вашей тещи, почти со всем прочим он справится. Можно преобразовать изображение в другой формат (поддерживается более 100), перевернуть, отразить, масштабировать, обрезать и трансформировать изображение, размыть его и увеличить резкость, изменить цвета, определить края, добавить текст и фигуры и многое другое.
Охватить все возможности ImageMagick всего в нескольких примерах нельзя, но вот два. Первый создает изображение, содержащее текст, который располагается вдоль 360-градусной дуги:
$ convert -background khaki -fill sienna -font acmesa.TTF -pointsize 144 label:”Рецепты доктора Брауна. “ -distort Arc 360 arctext.png
Мой второй пример создает коллаж из миниатюр всех изображений, которые есть в каталоге Pictures:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
$ montage -label ‘%t\n%[width]x%[height]’ -size
512x512 ‘/home/chris/Pictures/*.jpg[120x90]’ -auto-orient -geometry +5+5 -tile 5x -frame 5 -shadow photos.png
Результат – аккуратная серия миниатюр, каждая с заголовком и в красивой рамке с тенью. Эти примеры иллюстрируют работу только двух команд – convert и montage. Есть еще девять: animate, compare, composite, conjure, display, identify, import, mogrify и stream. В совокупности у них столько опций и параметров, что ошалеет самый отпетый наркоман командной строки. К счастью, на www.imagemagick.org очень много готовых примеров, покрывающих все: от размытия до аффинных преобразований.
Наряду с управлением ImageMagick из командной строки (или из скрипта), есть библиотеки, предоставляющие доступ ко всему этому великолепию для работы с изображениями на языках C, Java, Perl, PHP и Ruby. ImageMagick почти наверняка есть в вашем дистрибутиве, и его установка должна быть простой. Существует версия также и для Windows.
Стек LAMP
M – это MySQL. Третья часть нашей серии, и в ней мы осваиваем базы данных.
В этом месяце мы рассмотрим «M» в стеке LAMP – MySQL. Сперва вкратце ознакомимся с теорией баз данных, затем перейдем к SQL и, наконец, установим MySQL и создадим базу данных. Как и в предыдущих статьях, здесь я пользуюсь CentOS 6.2 – и советую вам последовать моему примеру и установить его на виртуальную машину.
Пособие по нырку в базы данных
На то, чтобы стать гуру в базах данных, можно потратить всю жизнь, но основы не слишком сложны. Начнем с начала: в базах данных информация хранится в таблицах, и у каждой таблицы есть имя. Таблица состоит из столбцов и строк. У каждого столбца есть имя и тип данных. Эти типы данных отчасти зависят от используемого сервера баз данных, и необязательно должны напрямую соответствовать типам данных, используемым в серверных языках программирования. Например, MySQL поддерживает 8-битные целые числа в виде типа TINYINT, которого нет в PHP.
Один столбец внутри каждой таблицы назначается первичным ключом. Он должен быть уникален внутри таблицы; иными словами, запросив данные из таблицы для заданного первичного ключа, вы получите в ответ максимум одну строку. Так же часто один или несколько столбцов содержат так называемые внешние ключи, которые представляют собой перекрестные ссылки на первичные ключи в других таблицах. Структура базы данных – ее таблицы, их столбцы и типы данных и взаимосвязи между ключами – называется схемой базы данных.
Рассмотрим пример. На рисунке показаны две таблицы books [книги] и borrowers [читатели], которые могут составить базу данных, используемую библиотекой, выдающей книги на дом. База данных позволяет нам следить за книгами в библиотеке – выданы они или нет, и если да – кто их взял и когда вернет.
В таблице book каждой книге назначен уникальный идентификатор книги; он выступает в роли первичного ключа таблицы. Может возникнуть соблазн использовать как первичный ключ ISBN книги – в конце концов, он обязан быть уникальным. Но тогда в библиотеке нельзя будет держать больше одного экземпляра каждой книги. Использование собственного «идентификатора книги» в качестве первичного ключа позволяет избежать этой проблемы. Посмотрев на таблицу на рисунке, мы видим, что одну из книг взял читатель 102. Это внешний ключ. 102 ссылается на первичный ключ в таблице borrower. Посмотрев в эту таблицу, мы видим, что книгу взяла Джейн Смит [Jane Smith].
====Язык структурных запросов====Для создания таблиц, выполнения к ним запросов и их обновления используется древний язык под названием SQL (Structured Query Language – язык структурированных запросов). Он появился в 1974 году и стал стандартом ANSI в 1986, и этим сильно отличается от всех прочих языков программирования, с которыми вы можете быть знакомы. О нем написаны целые книги, но так как в этом месяце мне не выделили всю площадь журнала, придется довольствоваться несколькими примерами, чтобы вы поняли основную идею.
Для начала, вот пара SQL-запросов:
select * from books where author = ‘Charles Dickens’
select author,title from books where onloan = 1
Каждый из этих запросов возвращает «результирующее множество» – набор из нуля или более строк, содержащий соответствующие запросу записи. В первом примере * означает, что мы хотим получить все столбцы. Посмотреть в таблицу, вы увидите, что мы получим две строки (так как Чарльз Диккенс написал две из наших книг). Во втором примере в результатах нам нужны только столбцы author и title, и так как только одна книга из таблицы выдана на руки, результат будет состоять из одной строки.
Не все запросы возвращают строки данных. Следующий запрос возвратит просто количество выданных книг:
select count(*) from books where onloan = 1
Теперь предположим, что в библиотеку поступила новая книга. Вот SQL-запрос для добавления новой строки в таблицу:
insert into books values (6, ‘Birdsong’, ‘Sebastian Faulks’, 0, null, null)
Обратите внимание, что первоначально книга никому не выдана. Ключевое слово null означает, что элементу не присвоено никакого значения.
И вот наша библиотека решила избавиться от единственной книги Дугласа Адамса [Douglas Adams] (позор!), и нам нужно удалить ее из базы данных следующим SQL-запросом:
delete from books where bookid = 4
Обратите внимание, что поскольку здесь мы выбираем данные по первичному ключу, мы удалим максимум одну строку. Другой пример – если бы мы захотели удалить все книги Чарльза Диккенса [Charles Dickens] (еще худший позор!), это можно было бы сделать так:
delete from books where author = ‘Charles Dickens’
Наконец, представим, что читатель Джон Доу [John Doe] сообщил библиотеке об изменении своего адреса, поэтому нужно обновить базу данных следующим образом:
update borrowers set address = ‘15 Lemon Street, Liverpool’ where name = ‘John Doe’
В этих примерах есть несколько вещей, на которые нужно обратить внимание. Во-первых, ключевые слова SQL (вроде select, where, insert и delete) я писал в нижнем регистре. Это нормально, так как SQL не чувствителен к регистру; но большинство рьяных сторонников SQL написали бы их заглавными буквами. Во-вторых, здесь мы только смотрим на выражения языка SQL. Далее на нашем уроке мы увидим, как выполнять эти команды в клиенте командной строки MySQL, а через месяц – из кода PHP, но пока это чистый SQL.
Более сложные запросы
Прежде чем завершить наше мини-руководство по SQL, мне хочется показать вам чуть более хитрый запрос. Пусть нам нужно вывести список заголовков книг и читателей для книг, выданных на руки. Эта информация разбита между двумя таблицами, поэтому нам нужно объединить результаты из обеих. Запрос выглядит следующим образом:
select books.title,borrowers.name from books,borrowers where books.onloan = 1 and books.borrowerid = borrowers.borrowerid ;
Обратите внимание, что теперь имена столбцов нужно указывать с именами таблиц, например, books.title вместо просто title. Такой типа запроса называется объединением. А в выражении where – два условия, соединенные логическим «и (and)». Второе условие – books.borrowerid = borrowers.borrowerid – гарантирует, что мы получим только те сочетания данных из двух таблиц, которые соответствуют одному и тому же взятию книги на руки.
Здесь мы коснулись SQL лишь в общих чертах. Мы не говорили о командах создания новых баз данных и таблиц или о хранимых процедурах – которые по сути являются именованными фрагментами кода SQL, хранимыми на сервере. Мы также вовсе не упомянули об управлении доступом. В MySQL есть довольно тонкая схема управления доступом, которая позволяет создавать учетные записи пользователей и затем указывать, например, что для заданных таблиц (или даже заданных столбцов таблицы) пользователь имеет право только на чтение. У нашего пользователя root есть полный доступ ко всему, но вы вряд ли захотите использовать эту учетную запись в реальном web-приложении. Давайте установим MySQL и выполним эти действия по-настоящему. MySQL есть в репозиториях CentOS, поэтому установка проста:
yum install mysql mysql-server
Пакет mysql-server содержит сам сервер (mysqld), а пакет mysql (среди прочего) – клиент командной строки MySQL, к которому мы вскоре перейдем.
Также есть обычные команды управления сервисами. Сначала нужно обеспечить запуск сервиса при загрузке системы:
# chkconfig mysqld on
Затем нужно запустить сервис прямо сейчас:
# service mysqld start
После этого выполните команду mysql_secure_installation для создания начальной конфигурации. Это нужно сделать только один раз. У вас запросят пароль root, но на данном этапе его еще нет, поэтому просто нажмите Enter. Затем вам предложат задать новый пароль root; задайте хороший надежный пароль, потому что у этого пользователя есть полный административный контроль над всей базой данных. Правильнее будет назначить пароль, отличный от пароля root в Linux. Затем, следуя указаниям программы, вы должны:
» Удалить анонимных пользователей.
» Отключить удаленный вход в систему от имени root.
» Удалить тестовую базу данных.
Теперь можно двигаться дальше. Мы пойдем кратчайшим путем, начав прямо с создания базы данных library, которой пользуемся в примерах. Для этого воспользуемся готовым скриптом из команд SQL – createlibrary-database. Этот скрипт приведен на рисунке и также должен быть на вашем диске.
В командной строке MySQL этот скрипт запускается так:
$ mysql -u root -prootpw < create-library-database
Здесь rootpw – пароль пользователя root MySQL, которого мы создали ранее.
Если все пройдет удачно, создастся база данных, и мы сможем выполнять вышеописанные запросы. Зайдите на сервер MySQL и выберите базу данных library:
$ mysql -u root -prootpw library
MySQL напечатает несколько строк сообщений, затем отобразит строку ввода, из которой и выполняются запросы, например:
mysql> select author,title from books where onloan = 1;
+---------------+--------------------+
| author | title |
+---------------+--------------------+
| Дж. K. Роулинг | Кубок Огня |
+---------------+--------------------+
1 row in set (0.00 sec)
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Обратите внимание, что выражения в MySQL заканчиваются точкой с запятой. Это часть синтаксиса MySQL, а не SQL (если вы похожи на меня, то будете постоянно про эти точки с запятой забывать!).
Другие SQL-запросы и команды, которые мы видели ранее, можно запустить точно так же. Если вы следуете за мной, надеюсь, вам захотелось попробовать выполнить несколько собственных запросов.
Ссылочная целостность
Обычно с MySQL используется два серверных движка: MyISAM и InnoDB. В версиях MySQL до 5.5 в таблицах по умолчанию использовался MyISAM, а если вам нужна была таблица InnoDB, это указывалось при ее создании. Начиная с MySQL 5.5 и выше, по умолчанию применяется InnoDB. Одно из преимуществ InnoDB – в принудительном обеспечении ссылочной целостности данных.
«Ссылочная целостность» звучит весьма по-технарски, но по сути это означает, что если внешний ключ существует в таблице, этот ключ (в виде первичного ключа) должен существовать в таблице, на которую ссылается внешний ключ. Например, если бы мы удалили Джейн Смит из таблицы borrowers нашей базы данных library, ссылочная целостность бы нарушилась, потому что ключ этого пользователя (102) указывается в таблице books.
Поскольку наша база данных использует движок InnoDB и ссылка внешнего ключа была объявлена в структуре таблицы, при попытке удалить Джейн Смит система вежливо нам откажет:
mysql> delete from borrowers where name = ‘Jane Smith’;
ERROR 1451 (23000): Cannot delete or update a parent row:
a foreign key constraint fails (`library`.`books`,
CONSTRAINT `books_ibfk_1` FOREIGN KEY (`borrowerid`)
REFERENCES `borrowers` (`borrowerid`))
Время для кое-чего покрасивее
Если вы устали от командной строки и хотите увидеть что-нибудь графическое, установите MySQL Workbench. С этой программой вы можете:
» Создавать схемы баз данных, генерировать базы данных и управлять ими визуально.
» Создавать, оптимизировать и выполнять SQL-запросы.
» Настраивать серверы и учетные записи пользователей.
» Переносить базы данных с SQL Server, Sybase и PostgreSQL.
К сожалению, ее нет в репозиториях CentOS, но ее можно загрузить с сайта MySQL. Сделайте следующее:
» Зайдите на www.mysql.com/downloads.
» Щелкните по ссылке MySQL Workbench.
» В выпадающем списке выберите RedHat Linux 6.
» Щелкните по ссылке для загрузки 32-битной или 64-битной версии.
» Щелкните по “No thanks, just start my download! [Нет, спасибо, просто начать загрузку!]”, чтобы пропустить регистрацию.
» Сохраните файл (он будет в вашем каталоге Downloads).
» Скопируйте файл в /tmp.
» Переключитесь на пользователя root и выполните команды:
- yum install libzip pexpect gtkmm24
- rpm -i /tmp/mysql*rpm
Первая команда установит требуемые зависимости пакета, вторая – сам пакет.
На экранном снимке показан просмотр схемы базы данных в MySQL и отображение результатов простого запроса. Учтите, что хотя MySQL – графическая программа, вам все равно придется набирать свой SQL-запрос! Мне особенно нравится возможность MySQL Workbench по «реинжинирингу» базы данных и построению аккуратной диаграммы «сущность – связь» со схемами таблиц и отношениями между ними.
Через месяц, в последней части серии, мы соединим все части стека LAMP вместе. Мы разработаем web-приложение, которое позволит пользователям библиотеки отправлять запросы к базе данных библиотеки через HTML-форму, и напишем серверный код на PHP, который выполняет эти запросы к базе данных и формирует результат, отформатированный в HTML. Увидимся! |
Ссылочная целостность
Обычно с MySQL используется два серверных движка: MyISAM и InnoDB. В версиях MySQL до 5.5 в таблицах по умолчанию использовался MyISAM, а если вам нужна была таблица InnoDB, это указывалось при ее создании. Начиная с MySQL 5.5 и выше, по умолчанию применяется InnoDB. Одно из преимуществ InnoDB – в принудительном обеспечении ссылочной целостности данных.
«Ссылочная целостность» звучит весьма по-технарски, но по сути это означает, что если внешний ключ существует в таблице, этот ключ (в виде первичного ключа) должен существовать в таблице, на которую ссылается внешний ключ. Например, если бы мы удалили Джейн Смит из таблицы borrowers нашей базы данных library, ссылочная целостность бы нарушилась, потому что ключ этого пользователя (102) указывается в таблице books.
Поскольку наша база данных использует движок InnoDB и ссылка внешнего ключа была объявлена в структуре таблицы, при попытке удалить Джейн Смит система вежливо нам откажет:
mysql> delete from borrowers where name = ‘Jane Smith’;
ERROR 1451 (23000): Cannot delete or update a parent row:
a foreign key constraint fails (`library`.`books`,
CONSTRAINT `books_ibfk_1` FOREIGN KEY (`borrowerid`)
REFERENCES `borrowers` (`borrowerid`))
Время для кое-чего покрасивее
Если вы устали от командной строки и хотите увидеть что-нибудь графическое, установите MySQL Workbench. С этой программой вы можете:
» Создавать схемы баз данных, генерировать базы данных и управлять ими визуально.
» Создавать, оптимизировать и выполнять SQL-запросы.
» Настраивать серверы и учетные записи пользователей.
» Переносить базы данных с SQL Server, Sybase и PostgreSQL.
К сожалению, ее нет в репозиториях CentOS, но ее можно загрузить с сайта MySQL. Сделайте следующее:
» Зайдите на www.mysql.com/downloads.
» Щелкните по ссылке MySQL Workbench.
» В выпадающем списке выберите RedHat Linux 6.
» Щелкните по ссылке для загрузки 32-битной или 64-битной версии.
» Щелкните по “No thanks, just start my download! [Нет, спасибо, просто начать загрузку!]”, чтобы пропустить регистрацию.
» Сохраните файл (он будет в вашем каталоге Downloads).
» Скопируйте файл в /tmp.
» Переключитесь на пользователя root и выполните команды:
- yum install libzip pexpect gtkmm24
- rpm -i /tmp/mysql*rpm
Первая команда установит требуемые зависимости пакета, вторая – сам пакет.
На экранном снимке показан просмотр схемы базы данных в MySQL и отображение результатов простого запроса. Учтите, что хотя MySQL – графическая программа, вам все равно придется набирать свой SQL-запрос! Мне особенно нравится возможность MySQL Workbench по «реинжинирингу» базы данных и построению аккуратной диаграммы «сущность – связь» со схемами таблиц и отношениями между ними.
Через месяц, в последней части серии, мы соединим все части стека LAMP вместе. Мы разработаем web-приложение, которое позволит пользователям библиотеки отправлять запросы к базе данных библиотеки через HTML-форму, и напишем серверный код на PHP, который выполняет эти запросы к базе данных и формирует результат, отформатированный в HTML. Увидимся! |