Лабораторна робота № 1
Установка MYSQL під Win9x/NT/2000. mysql-front

Мета – ознайомитися з сервером MySql, його можливостями. Навчитися встановлювати сервер баз даних MySql, освоїти різні способи запуску сервера; ознайомитися з інтерфейсом програми MySQL-Front. Навчитися з’єднуватися з сервером MySql, створювати таблиці та заносити в них дані за допомогою даної програми.

Засоби. Сервер MySql, сервер Apache, MySQL-Front.

Теоретичні відомості

Навіщо взагалі потрібні бази даних?

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

При використанні бази даних перед вами відкривається багато раніше недоступних (або дуже важкодоступних) можливостей. Наприклад, ви зможете показувати користувачеві тільки ті дані, які він сам захотів бачити, або надавати які-небудь оперативні дані (курси валют, прогнози погоди, ціни на товари або послуги і т.д.). Для всього цього вам і потрібне постійне структуроване сховище даних.

Є безліч різних видів баз даних, але в нашому випадку ми будимо розглядати MYSQL.

Чому саме MYSQL?

Тому що вона є невеликим, компактним і простим у використанні сервером баз даних, ідеальним для додатків малого і середнього розміру. Варто відзначити і той факт, що MYSQL доступна на ряду платформ Unix, Windows NT/2000, 95/98. Крім того, відзначимо, що більшості інтернет-додатків, які можна викачати на різних безкоштовних скриптовых серверах, необхідна саме MYSQL. Наприклад, мені так і не вдалося знайти повнофункціональний форум, який би не використав базу даних.

Установка MYSQL

Поставимо MYSQL в папку за умовчанням, тобто c:\mysql. Це дозволить нам надалі відразу почати роботу, без яких-небудь додаткових настройок.

Після установки ми зможемо спостерігати приблизно наступну ієрархію папок:

C:\mysql — коренева директорія.

|_bench — контрольні виміри і тест “crash-me”.

|_bin — клієнтські програми і сценарії.

|_data — саме тут знаходитимуться самі бази даних.

|_docs — різна інформація: копірайти, ліцензії, короткий мануал і т.д.

|_examples — декілька прикладів використання бази (див. мануал).

|_include — файли заголовків.

|_lib — різні бібліопапоки.

|_scripts — декілька Perl-скриптів.

|_share — файли повідомлень про помилки.

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

Зазвичай в додатках, що використовують MYSQL, присутні три стандартні змінні, які відповідають за доступ до самої бази даних:

$userName = "root"; - ім’я користувача, якому дозволений доступ до бази.

$password = ""; пароль, за умовчанням він відсутній.

$hostName = "localhost"; ім'я хоста, на якому розміщена база даних.

Запуск MYSQL сервера

1.            Запуск з командного рядка

Для цього в Win 95/98 запускаємо “Сеанс MS-DOS” і прописуємо декілька команд, орієнтуючись на те, що ви встановили MYSQL на C:\mysql:

cd mysql\bin

Далі пишемо mysql --standalone. Якщо після цього не з'явиться ніяких повідомлень про помилки, означає сервер успішно працює у фоновому режимі.

Вхід в режимі адміністрування здійснюється трохи інакше:

cd mysql\bin —u root(ім'я користувача) mysql

Після цього повинен з'явитися наступний текст:

Welcome to the MYSQL monitor.Commands end with; or \g.

Your MYSQL connection id is 1 to server version: 3.23.19

Type 'help' for help.

mysql>

Тепер ви можете призначити користувачеві root пароль (якщо хочете, звичайно), для цього в тому ж командному рядку пишемо:

mysql> UPDATE user SET Password=PASSWORD('новый_пароль) WHERE user='root';

mysql>quit

mysql\bin>mysqladmin -u root reload

Після цього ми завершуємо роботу сервера командою quit і перезавантажуємо його reload

Тепер спробуємо увійти знову:

mysql\bin\mysql -u root -p mysql

Enter password: ********(пароль)

Якщо з'явився запит ввести пароль, то це означає що база працює нормально, але для більшої упевненості візьмемо невеликий безкоштовний php додаток, який виведе список всіх баз даних на сервері. Для цього створюємо новий файл в директорії, де у вас знаходяться всі Html/phtml (і т.д.) документи і називаємо його, наприклад, check_mysql.php, і пишемо в нім наступний код:

<HTML>

<HEAD>

<TITLE> Список баз даних на сервере</TITLE>

</HEAD>

<BODY>

<? $userName = "root"; //використовується за замовчуванням

$password = "new_password"; //якщо пароль не заданий, то має значення порожнього рядка

$hostName = "localhost"; //хост, на якому знаходиться база MYSQL

//З'єднання з базою даних MYSQL

if (!($link = mysql_connect($hostName, $userName, $password)))

{

printf("<BR> Відбулася помилка при з'єднанні з базою даних %s <BR>\n", $hostName);

exit();

}

// Отримання списку баз даних, що знаходяться на сервері

if (!($listOfDbs = mysql_list_dbs($link)))

{

printf("<BR> Помилка в mysql_list_dbs, помилка %s <BR>\n", mysql_error($link));

exit();

}

printf("<b> Бази даних на %s </b> <br> <br>\n", $hostName);

// Одержати список баз даних

$noOfDbs = 0;

while ($noOfDbs < mysql_num_rows($listOfDbs))

{

printf(" %s <BR>\n", mysql_tablename($listOfDbs, $noOfDbs));

$noOfDbs++;

}

// Звільнити покажчик результату

mysql_free_result($listOfDbs);?>

</BODY>

</HTML>

Зберігаємо все це, запускаємо (якщо у вас ще не запущений) MYSQL сервер, Apache сервер і викликаємо цей файл http://localhost/check_mysql.php.

В результаті його виконання ми одержимо список баз даних, що знаходяться на сервері. За умовчанням їх всього дві: test і Mysql. Якщо при виклику відбудеться помилка, то можливі наступні причини:

·               Ви забули вказати програмі пароль/ім'я користувача. Перевірте відповідність паролів. Нагадую, що за умовчанням пароль не встановлений.

·               Можливо, не запущений сам MYSQL сервер. Запустіть сервер.

·               Можливо, ви допустили помилку при введенні самого коду.

Повернемося до варіантів запуску сервера.

2.            Запуск за допомогою файлу

Є можливість одночасного запуску як сервера MYSQL, так і сервера Apache. Для цього нам потрібно буде створити файл, наприклад, start.bat, у який запишемо такі рядки:

— @echo off

— "C: \mysql\bin\mysqld"

start /m "C:\web \Apache" (у мене Apache знаходиться тут, у вас може бути інакше)

У тій же папці створюємо файл shutdown.bat, який завершуватиме роботу Apache і MYSQL:

— @echo off

— "C:\web\Apache" -k shutdown

"C:\ mysql\bin\mysqladmin" -u root shutdown

Досить зручно призначити цим файлам “гарячі клавіші”, для швидкого виклику. Наприклад, CTRL+S і CTRL+D відповідно (Start/shutdown). Але не під всіма операційними системами це спрацьовує.

3.            Запуск за допомогою winmysqladmin

Якщо ви не хочете нічого конфігурувати, то це спосіб є оптимальним, оскільки запуск здійснюється у вигляді окремого додатку. У ньому ви можете бачити повну статистику роботи сервера, загальні настройки, підключення до бази даних різних користувачів, статистику помилок, а найголовніше — ви одним кликом миші можете створювати/видаляти нові бази, що дуже і дуже зручно. Окрім перерахованого, є ще багато статистичної інформації, яка може виявитися дуже корисною при тестуванні того або іншого додатку.

MySQL-Front є типовою windows-програмою. Запустити її можна з Головного меню . При першому запуску програми потрібно створити профіль (сесію) для під’єднання до сервера (рис.1.1).

Рис.1.1. Створення профілю для під’єднання до сервера

На закладці „Главное/General” ввести назву профілю (будь-яка стрічка, наприклад, Ваше прізвище або ініціали), на закладці „Подключение/Connection” – параметри MySql-сервера, до якого ми хочемо під’єднатись, а саме ім’я або ІР-адресу комп’ютера (поле Server), на якому розміщений MySql-сервер. Наприклад, у нашому випадку, коли використовується локальна машина і віртуальний диск з сервером, ІР-адрес - 127.0.0.1.

На закладці „Пользователь/Login” ввести ім’я користувача і пароль (такі ж, як і в попередній лабораторній роботі). Також можна встановити опцію „Save Password”, щоб програма при наступних під’єднаннях не перепитувала пароль.

Після введення імені користувача та пароля натискаємо на кнопку „ОК”. З’явиться вікно вибору профілю, вибираємо щойно створений профіль і натискаємо кнопку „ОК”.

Якщо всі параметри задано правильно, то програма повинна успішно з’єднатися з сервером і показати вікно, розділене на дві частини, зі списком баз даних сервера (рис.1.2).

Рис. 1.2. Вигляд головного вікна MySQL-Front

*         Зверніть увагу: бази даних ті ж, що й у попередній роботі, де ми працювали з PHPMyAdmin, адже під’єднання відбувалося до одного й того ж сервера.

*         MySQL-Front підтримує багатомовний інтерфейс, у тому числі й українськомовний. Мову інтерфейсу можна змінити в головному меню програми: .

Список баз даних представлений у вигляді дерева (рис.1.3). При розкритті вітки зі значком бази, з’явиться список таблиць. що містяться у цій базі даних.

Рис. 1.3. Список баз даних в MySQL-Front

Щоб редагувати структуру таблиці, слід вибрати таблицю, клацнувши по ній мишкою, тоді в правій частині вікна буде відображено список полів та індексів таблиці.

Права частина вікна може мати три режими роботи:

1.            Перегляд структури (також є можливість редагування).

2.            Перегляд записів таблиці (також є можливість редагування).

3.            Виконання SQL-запитів.

*         Режими роботи перемикаються кнопками над вікном (рис.1.4). У режимі перегляду даних записи можна редагувати, зробивши подвійний клік на клітинці. При перегляді структури поля також можна редагувати, два рази клацнувши на них або в контекстному меню вибрати „Властивості”.

Рис. 1.4. Основні елементи вікна програми MySQL-Front

Щоб створити нову таблицю, зручно використовувати контекстне меню бази даних, до якої ви хочете додати таблицю. В меню слід вибрати . При створенні таблиці необхідно задати ім’я (рис.1.5).

Рис. 1.5. Створення нової таблиці

Поля нової таблиці можна вказати на закладці Fields (рис.1.6).

Рис. 1.6. Поля нової таблиці БД

 

Завдання

Завдання 1

Встановити та запустити MYSQL в комп’ютерному класі та вдома.

Завдання 2

За допомогою MySQL-Front  створити у своїй базі даних таблицю Група (Group), в таблиці повинні міститися дані про студентів Вашої групи. Поля таблиці придумати самостійно (наприклад id, name, surname, father_name, born тощо).

Ввести в таблицю не менше 10-записів.

Завдання 3

Створити таблицю Предмети (Subjects) з полями:

1)            номер по порядку (id);

2)            назва (name).

Ввести в таблицю 3-4 навчальних предмети, з яких у Вас були екзамени минулого семестру.

Завдання 4

Створити таблицю Оцінки (Marks):

1)            idномер по порядку;

2)            student_id – номер студента з таблиці Group;

3)            subject_id номер предмету з таблиці Subjects;

4)            mark – оцінка, отримана студентом за вказаний предмет минулого семестру.

Заповнити таблицю Marks, внісши до неї оцінки студентів з таблиці Group, з предметів таблиці Subjects і, проставивши за них оцінки, які студенти отримали за минулий семестр.

Завдання 5

За допомогою мови SQL створити таблицю Книги (Books) з такими полями:

1)            idномер по порядку;

2)            nameназва книжки;

3)            authorавтор книги;

4)            print_year рік видання;

5)            publisher - видавництво;

SQL-запити, які використовувалися при виконанні завдання, зберегти в окремому файлі.

Завдання 6

За допомогою тілки мови SQL розділити відношення „книги” так, щоб:

1)            автори і видавництва були розміщені в окремих таблицях, а не в таблиці Books;

2)            база даних повинна підтримувати введення кількох авторів для однієї книги 9враховуючи і попередній пункт).

SQL-запити, які використовувалися при виконанні завдання, зберегти в окремому файлі.