ГЛАВНАЯ СТРАНИЦА
Лабораторная №1
Лабораторная №2
Лабораторная №3
Лабораторная №4
Лабораторная №5
Лабораторная №6

Тема: Работа с СУБД MySQL — терминальный доступ.

Рекомендации и требования.

Установка и настройка.
1. Сначала создаём сервер Базы Данных. То есть, проверяем:
- установлены ли пакеты mysql-server и mysql-client.
Если не установлены, то необходимые пакеты доустанавливаем (делать это нужно с помощью synaptic - «Меню → Настройки → Управление пакетами»). В качестве репозитария рекомендуется использовать
штатные репозитарии дистрибутива, с которого ставилась система.
Как это сделать:
- открываем synaptic,
- проверяем, что правильно установлены репозитарии: должно быть:
http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch/ i586 classic
http://ftp.altlinux.org/pub/distributions/ALTLinux/p7/branch/ noarch classic
- проверяем, что правильно подключен интернет: «Параметры» → «Параметры» → «Сеть» → «Ручная настройка прокси-сервера»
ip-адрес = 10.2.0.1, порт = 3128
- ищем mysql, смотрим, установлены ли пакеты mysql-server и mysql- client, если не установлены, то помечаем их «установить» и жмём «Применить». Ждём завершения установки.

Внимание! Если вам нужно переустановить сервер mysql, то сначала нужно снести установленный, то есть, выбрать его (подсветить) и пометить для «ПОЛНОГО УДАЛЕНИЯ», «Применить», затем не забыть снести каталоги
/var/lib/mysql
/etc/my.cnf.d
Только после этого делать новую установку пакетов mysql-server и mysql-client.

2. Как проверить, что сервер mysql запущен и работает. Даём команду:
ps -ax | grep mysqld

В выводе команды должны присутствовать как минимум указанные две строчки:





3. Обеспечить запуск СУБД при старте ПЭВМ. Как это сделать - смотреть в «Руководстве администратора AltLinux» (www.altlinux.org, heap.altlinux.org/issues/modules/init_d/index.html).
Также читать «Руководство Администратора MySQL», особенно внимательно — главу 4.
Разово (на текущий сеанс) сервер mysql можно запустить командой:
/etc/rc.d/init.d/mysqld start
После изменения конфигурационных файлов сервер нужно перезапустить:
/etc/rc.d/init.d/mysqld stop
/etc/rc.d/init.d/mysqld start
или одной командой:
/etc/rc.d/init.d/mysqld restart

!!! Примечание 1. Не путайте пользователя root в Linux с пользователем root в mysql:
- root в Linux — в которого вы переходите по команде su- это админ в Linux;
- root в mysql — которым вы подключаетесь к mysql командой:
«mysql -u root -p mysql» - это админ в mysql!
— это разные пользователи!
!!! Примечание 2. Для работы клиентом с mysql — даже root'ом, не надо(!) переходить в root в Linux!

4. После установки СУБД (новой установки; если СУБД не вы устанавливали, то возможно пароль пользователя root уже установлен):
– устанавливаем на пользователя root пароль = rootsqladm,
– входим в MySQL администратором (root'ом) так:
mysql -u root -p mysql
здесь: -u root — говорим, что зайдём пользователем root,
-p — говорим, что будем вводить пароль,
mysql — говорим, что подключаемся к БД mysql;
– создаём базу с именем (то есть, первые буквы своего ФИО, большие, латинские),
– создаём обычного пользователя с логином (то есть, первые буквы имени-отчества, маленькие, латинские) с правами на созданную базу, и, возможно, с паролем,
– выходим из MySQL.
Внимание! Как создавать базу и пользователя с правами на неё, смотреть в «Руководстве Администратора MySQL», глава 4. Там же описано как посмотреть какого вы пользователя создали и его права.
(Пункт 4.3.5. Добавление новых пользователей в MySQL)


!!! Примечание. Не путайте пользователя root в Linux с пользователем root в mysql — это разные пользователи!

5. Подключаемся к СУБД созданным пользователем:
mysql -u -p

где io — логин созданного пользователя(см. пункт 4),
-p — говорим, что будем вводить пароль,
FIO — база, созданная для данного пользователя

Работа с СУБД.

6. Далее необходимо создать в базе таблицу pri31. Заполнить таблицу данными о всех студентах учебной группы. Структура таблицы:
«Фамилия, имя, отчество, год рождения, рост, вес, пол»

7. Создать в базе таблицу mobila — данные о мобильных телефонах (ввести не менее 10 марок!). Структура таблицы:
«фирма, марка, ёмкость аккумулятора, время до перезарядки в режиме разговора, наличие диктофона, формат записи диктофона (MP3, WAV, OGG, иной — указать какой), наличие фотоаппарата, разрешение
фотоаппарата»;

8. Создать в базе таблицу provider — данные о провайдерах Internet'а Ульяновска, которые могут быть использованы студентами группы. Структура таблицы:
«название провайдера, сайт провайдера».

9. Создать в базе таблицу tarifs — тарифные планы провайдеров Internet'а, которые могут быть использованы студентами группы. Структура таблицы:
«название тарифного плана, провайдер, входящая_скорость, лимитный/безлимитный».

10. Продемонстрировать работу с сервером MySQL. Выполнить запросы:
– «студенты женского пола, имеющие мобильник с фотоаппаратом»;
– «студенты мужского пола, у которых провайдер Волгателеком, тариф лимитный»:
– «студенты мужского пола, у которых мобильник Nokia, а провайдер Волгателеком, тариф безлимитный»;
– «студенты женского пола, имеющие мобильник Samsung, а провайдер Билайн (Корбина)»;
– «студенты мужского пола, у которых мобильник Samsung с фотоаппаратом с разрешением более 2 Мегапикселей, а провайдер Теле-2, тариф безлимитный»;

11. Требования к отображению информации: мы, ведь, ищем людей? Следовательно, таблица должна быть в виде
«Фамилия, Имя, Отчество, <остальная информация запроса в текстовом виде>»


Методические материалы.
Документация («Руководство администратора MySQL») смотреть в каталоге manMySQL на ПЭВМ лаб326. Оно также приложено к заданию на лабу.
Другая документация: heap.altlinux.org, docs.altlinux.org


Порядок сдачи лабораторной.
В отчёте о выполнении данной лабы должны быть:
– задание на лабу;
– описание порядка запуска СУБД;
– screen окна xterm с выполненной командой ps -ax, показывающей, что СУБД запущена;
– screen окна xterm с выполненной командой
mysql -u <созданный пользователь> <созданная база>,
подключением к базе и выполненным операторам show tables;
– описание запросов пункта 9 к СУБД MySQL и распечатка выполненых запросов (можно screen, Но читабельный!).
– описание своих действий по работе с СУБД MySQL.

По требованию преподавателя выполнить работу на ПЭВМ в лаб326.

Срок сдачи лабораторной — до 30.10.17.



Проделанная работа:


Выполнение и отчёт:

Данные которые вводятся не подходят к этой лабе. Выставил только для примера!

Устанавливаем на пользователя root пароль = rootsqladm
mysqladmin -u root password rootsqladm
Вход администратором.
mysql -u root -p mysql
Создание базы
mysql> create database PDV;
mysql> use PDV;
Создание обычного пользователя с правами на базу.
mysql> GRANT ALL PRIVILEGES ON PDV.* TO dvp@localhost IDENTIFIED BY '123';
Выход из mysql.
mysql> exit
Вход созданным пользователем.
mysql –u dpv –p PDV
Создание в базе таблиц и их заполнение.
Первая таблица.
mysql> create table PRI15 (in_stud bigint not null auto_increment primary key, fam varchar(30) not null, imja varchar(30) not null, otch varchar(30) not null, adres_stud varchar(60) not null, god_rogd date not null);
Query OK, 0 rows affected (0.00 sec)
mysql> describe student;
+----------------+---------
| Field | Type |Null| Key | Default | Extra |
+----------------+---------
| in_stud | bigint(20) |NO | PRI | NULL | auto_increment |
| fam | varchar(30 |NO | | NULL | |
| imja | varchar(30) |NO | | NULL | |
| otch | varchar(30) |NO | | NULL | |
| adres | varchar(60) |NO | | NULL | |
| god_rogd | date |NO | | NULL | |
+----------------+---------
4 rows in set (0.00 sec)
mysql> insert into student(fam, imja, otch, adres_stud, god_rogd) values ("Kuzina", "Anna", "Nikolaevna", "Ulianovsk, ul. Solnechnaia, 1-3", 1991);
Query OK, 1 row affected (0.00 sec)
mysql> insert into student(fam, imja, otch, adres_stud, god_rogd) values ("Mannanikov", "Petr", "Sergeevich", "Ulianovsk, ul. 40 let oktiabria, 1-3", 1991);
Query OK, 1 row affected (0.00 sec)
mysql> insert into student(fam, imja, otch, adres_stud, god_rogd) values ("Laruschin", "Petr", "Ivanovich", "Ulianovsk, ul. 40 Let Pobedi, 40-7", 1990);
Query OK, 1 row affected (0.00 sec)
mysql> insert into student(fam, imja, otch, adres_stud, god_rogd) values ("Petrov", "Petr", "Sidorovich", "Ulianovsk, ul. Deeva, 42-9", 1989);
Query OK, 1 row affected (0.00 sec)
mysql> select * from student;
+-----------+-------------- | in_stud | fam | imja | otch | adres_stud
+-----------+--------------
| 1 | Laruschin | Alexey| Ivanovich | Ulianovsk, ul. Solnechnaia, 11-23 | 1990 |
| 2 | Kuzina | Anna | Nikolaevna| Ulianovsk, ul. Solnechnaia, 1-3 | 1991 |
| 3 | Mannanikov| Petr | Sergeevich| Ulianovsk, ul. 40 let oktiabria, 1-3 | 1991 |
| 4 | Laruschin | Petr | Ivanovich | Ulianovsk, ul. 40 Let Pobedi, 40-7 | 1990 |
| 5 | Petrov | Petr | Sidorovich | Ulianovsk, ul. Deeva, 42-9 | 1989 |
+-----------+--------------
5 rows in set (0.00 sec)
Вторая таблица.
mysql> create table stud_prik (in_stud bigint not null, in_prik bigint not null, tema varchar(50) not null, primary key(in_stud, in_prik));
Query OK, 0 rows affected (0.00 sec)
mysql> describe stud_prik;
+----------------+--------- | Field | Type |Null| Key | Default | Extra |
+----------------+---------
| in_stud | bigint(20) | NO | PRI | NULL | |
| in_prik | bigint(20) | NO | PRI| NULL | |
| tema | varchar(50) | NO | | NULL | |
+----------------+---------
3 rows in set (0.00 sec)
mysql> insert into prikaz(nom_prik, data_prik, in_vuz) values ("142", "2008/08/20", 1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into prikaz(nom_prik, data_prik, in_vuz) values ("143", "2008/08/21", 1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into prikaz(nom_prik, data_prik, in_vuz) values ("144", "2008/09/02", 1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from prikaz;
+-----------+-------------+
| in_prik | nom_prik| data_prik | in_vuz |
+-----------+-------------+
| 1 | 142 | 2008-08-20| 1 |
| 2 | 143 | 2008-08-21| 1 |
| 3 | 144 | 2008-09-02| 1 |
+-----------+-------------+
3 rows in set (0.00 sec)
Третья таблица.
mysql> create table stud_prik (in_stud bigint not null, in_prik bigint not null, tema varchar(50) not null, primary key(in_stud, in_prik));
Query OK, 0 rows affected (0.00 sec)
mysql> describe stud_prik;
+----------------+---------
| Field | Type |Null| Key | Default | Extra |
+----------------+---------
| in_stud | bigint(20) | NO | PRI | NULL | |
| in_prik | bigint(20) | NO | PRI| NULL | |
| tema | varchar(50) | NO | | NULL | |
+----------------+---------
3 rows in set (0.00 sec)
mysql> insert into stud_prik(in_stud, in_prik, tema) values (1, 1, "Zachislit");
Query OK, 1 row affected (0.00 sec)
mysql> insert into stud_prik(in_stud, in_prik, tema) values (2, 1, "Zachislit");
Query OK, 1 row affected (0.00 sec)
mysql> insert into stud_prik(in_stud, in_prik, tema) values (3, 2, "Zachislit");
Query OK, 1 row affected (0.00 sec)
mysql> insert into stud_prik(in_stud, in_prik, tema) values (4, 2, "Zachislit");
Query OK, 1 row affected (0.00 sec)
mysql> insert into stud_prik(in_stud, in_prik, tema) values (5, 3, "Otchislit");
Query OK, 1 row affected (0.00 sec)
Выход из mysql
mysql> exit
Bye


Запросов не осталось, так что думайте сами ;)

УлГУ 2017