Лабораторна робота № 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-запити,
які використовувалися при виконанні завдання, зберегти в окремому файлі.