Bazy Danych. Ćwiczenie 2: Podstawy pracy z bazą MySQL



Podobne dokumenty
mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Wtedy wystarczy wybrać właściwego Taga z listy.

Microsoft Management Console

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Kurier POCZTEX XL by CTI. Instrukcja

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

CitiDirect EB - Mobile

SCHEMATY STRON. Baner Nawigacja Nawigacja okruszkowa Prawa kolumna zobacz również Boksy Zwykła strona...

I. Zakładanie nowego konta użytkownika.

Seria P-662HW-Dx. Bezprzewodowy modem ADSL2+ z routerem. Skrócona instrukcja obsługi

Opis instalacji systemu Intranet Komunikator

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

SpedCust 5 instrukcja instalacji

Praca na wielu bazach

Instrukcja programu PControl Powiadowmienia.

Wypełnienie formularza zapisu dzieci do przedszkoli należy wprowadzić na stronie otwock.formico.pl

Instrukcja rejestracji do sprawozdania PARPA G1

Poniżej instrukcja użytkowania platformy

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Warszawa, r.

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

Zarządzanie Zasobami by CTI. Instrukcja

Metody opracowywania dokumentów wielostronicowych. Technologia Informacyjna Lekcja 28

INFORMATOR TECHNICZNY WONDERWARE

6ka.pl Użytkownik:, Data:

Arkusz kalkulacyjny MS Excel podstawy

Linux LAMP, czyli Apache, Php i MySQL

Intellect. Business Intelligence. Biblioteka dokumentów Podręcznik. Business Intelligence od 2Intellect.com Sp. z o.o.

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Instrukcja obsługi krótka,

STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

ARAKS FAKTURY Instalujemy program i wystawiamy fakturę krok po kroku, oraz co wyróżnia nasz program od innych. - 1

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Spring MVC Andrzej Klusiewicz 1/18

Kalkulator Kalorii by CTI. Instrukcja

Ekran startowy płyty instalacyjnej umozliwia nam wybór

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

Program Płatnik Instrukcja instalacji

raceboard-s Szybki start

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

PERSON Kraków

KONKURSY MATEMATYCZNE. Treść zadań

OptiMore Importer Rejestru VAT. Instrukcja obsługi programu

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

Logowanie do systemu Faktura elektroniczna

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

Stypendia USOS Stan na semestr zimowy 2013/14

DEMERO Automation Systems

Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro)

Instrukcja logowania do aplikacji ING Agent

Bazy Danych. Ćwiczenie 10: dostęp do danych zgromadzonych w bazie MySQL z poziomu przeglądarki internetowej z użyciem PHP

Instrukcja Obsługi STRONA PODMIOTOWA BIP

INSTRUKCJA Panel administracyjny

Rejestr Windows - cz. II

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Zdalne odnawianie certyfikatów do SWI

Archiwum Prac Dyplomowych

StacjaSQL.2012 /PIERWSZE URUCHOMIENIE I PODSTAWOWE USTAWIENIA/ str. 1 z 8. Copyright NORCOM 2012

Znak: OR

Zaznaczając checkbox zapamiętaj program zapamięta twoje dane logowania. Wybierz cmentarz z dostępnych na rozwijalnej liście.

Easy, Reliable & Secure. Podręcznik instalacji wzmacniacza N300RE Wi-Fi Range Extender

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Elementy typografii. Technologia Informacyjna Lekcja 22

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

Użytkowanie elektronicznego dziennika UONET PLUS.

Program Google AdSense w Smaker.pl

StacjaSQL.2012 / USUNIĘCIE BAZY TRENINGOWEJ, PRZEJŚCIE NA WERSJĘ KOMERCYJNĄ/ str. 1 z 11. Copyright NORCOM 2012

enova Workflow Obieg faktury kosztowej

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

WF-FaKir dla Windows

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Instrukcja obsługi Podręcznik bezpieczeństwa

Procedura instalacji wtyczki WILO-Content LAB

Specyfikacja techniczna banerów Flash

Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP /

Kancelaris - Zmiany w wersji 2.50

Pierwsze logowanie do systemu I-Bank

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

Urządzenia do bezprzerwowego zasilania UPS CES GX RACK. 10 kva. Wersja U/CES_GXR_10.0/J/v01. Praca równoległa

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

1. Warunki. 2. Zakładanie konta. 3. Logowanie. 4. Korzystanie z portalu partnera serwisowego 5. Subkonta 5.1Zakładanie subkonta. 5.

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

Firma Informatyczna JazzBIT

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

Transkrypt:

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Bazy Danych Ćwiczenie 2: Podstawy pracy z bazą MySQL opracował: dr inż. Artur Gramacki (a.gramacki@issi.uz.zgora.pl) 1. Uruchomić system XAMPP. Następnie poprawnie zalogować się na utworzone w poprzednik ćwiczeniu konto robocze (nazwa konta oraz bazy danych: lab) wykorzystując narzędzie phpmyadmin oraz MySQL-Front (patrz poprzednie ćwiczenie). Porozglądać się w obu programach. Pewna biegłość w posługiwaniu się nimi będzie bardzo wskazana, żeby nie powiedzieć niezbędna, w czasie wykonywania wielu zadać podanych w kolejnych instrukcjach. 2. Celem ćwiczeń w tej instrukcji jest nabranie wprawy w pracy z bazą MySQL wykorzystując najbardziej podstawowy (i dostępny w każdej instalacji serwer MySQL) program konsoli tekstowej (nosi on oficjalną nazwę MySQL monitor). Jest to program o nazwie mysql.exe znajdujący się w katalogu..\mysql\bin. Gdy na ekranie otrzymamy komunikat podobny do poniższego oznacza to, że serwer MySQL nie działa i dalsze próby skomunikowania się z nim są bezcelowe: shell> mysql.exe ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) Należy upewnić się, że serwer MySQL został prawidłowo uruchomiony (patrz poprzednie ćwiczenie). Uwaga: na niebiesko zaznaczono polecenia (tu oraz w dalszej części instrukcji) wpisywane przez studenta w konsoli tekstowej. Symbol shell> zawsze będzie oznaczać znak zachęty w konsoli tekstowej systemu Windows a symbol znak zachęty w konsoli tekstowej MySQL-a. 3. Sprawdzić, wykorzystując program PhpMyAdmin, czy i jakie konta istnieją bez haseł. Kont takich w produkcyjnej instalacji bazy MySQL nie ma prawa być, gdyż stanowią potężną lukę bezpieczeństwa! 1

4. Potwierdzić możliwość zalogowania się na wszystkie otwarte konta, czyli przykładowo dla użytkownika root: shell> mysql.exe Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 30 Server version: 5.6.26 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. select current_user(); current_user() @localhost 1 row in set (0.00 sec) 5. Usunąć wszystkie otwarte konta a kontom, które nie posiadają założonych haseł utworzyć dowolne hasła. 6. Spróbować zalogować się na użytkownika root bez podawania hasła, z podaniem złego hasła i w końcu podając poprawne hasło, czyli: shell> mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 2

shell> mysql -u root -pniepoprawnehaslo Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) shell> mysql -u root -p Enter password: ************** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) shell> mysql -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. shell> mysql -u root -proot Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Zrozum dokładnie różnice pomiędzy poszczególnymi wywołaniami programu MySQL monitor. Zwróć uwagę, że po przełączniku -p nie ma spacji! Zapominanie o tym jest nagminnym błędem początkujących użytkowników serwera MySQL! 7. Użyć bardziej rozwlekłej formy parametrów programu MySQL monitor, czyli, shell>mysql --host=localhost --user=root --password --database=mysql --port=3306 Wyjaśnić, czy i kiedy taka długa forma ma praktyczne zastosowanie. 8. Połączyć się do serwera MySQL z jednoczesnym wyborem bieżącej bazy danych shell> mysql -u root -p mysql Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Zwróćmy uwagę, że teraz pojawiła się spacja po przełączniku -p. Tym razem oznacza to, że zamierzamy, po poprawnej autoryzacji, wybrać jako bieżącą bazę danych o nazwie mysql. Można też użyć przełącznika -D, aby zapis był bardziej wyrazisty, czyli: shell> mysql -u root -p -D mysql 9. Będąc już podłączonym do serwera MySQL możemy wydać kilka poleceń, które po pierwsze upewnią nas, że całość działa poprawnie a po drugie pozwolą nieco dokładniej poznać system MySQL. Postaraj się zrozumieć co wykonują poszczególne polecenia. Zwróć uwagę, że każde z nich jest zakończone średnikiem (za wyjątkiem dwóch pierwszych, gdyż są to polecenia programu MySQL monitor). Wielkość liter nie ma znaczenia, jednak sugerujemy, aby wszystkie słowa kluczowe języka SQL oraz polecenia programu MySQL monitor wpisywać 3

dużymi literami a pozostałe małymi (lub też odwrotnie. Najważniejsze jest w sumie konsekwentne trzymanie się cały czas tej samej konwencji). W ostatnim poleceniu widać znaki ->. Program MySQL monitor wykona wpisane polecenie dopiero po napotkaniu średnika (średnik pełni rolę separatora instrukcji). Każde więc wciśnięcie klawisza Enter przenosi nas do linii poniżej i umożliwia kontynuowanie wpisywania polecenia. Znaki -> wyświetlane są automatycznie i mają one przypominać nam, że wpisywanie polecenie jeszcze się nie zakończyło. Taka funkcjonalność przydaje się wówczas, gdy polecenia są długie i nie mieszczą się w jednej linii. help status show databases; SELECT database(); use mysql; show tables; SELECT current_user(); SELECT user, host, password FROM user; SELECT current_date(); SELECT VERSION(), CURRENT_DATE; select version(), current_date; SeLeCt version(), current_date; SELECT -> user() ->, -> current_date; 10. Jak już wspomniano wcześniej większość ćwiczeń wykonywana będzie na lokalnych instalacjach MySQL-a, gdzie będziesz posiadać pełne uprawnienia do bazy danych (będziesz znał hasło użytkownika root). Jednak na początku poznawania MySQL-a zdecydowanie bezpieczniej będzie pracować na koncie użytkownika, który będzie posiadał zdecydowanie mniej uprawnień i dzięki temu trudniej będzie przypadkowo uszkodzić serwer MySQL. Dlatego też zakładamy, że wszystkie dalsze ćwiczenia będą wykonywane po zalogowaniu się na konto użytkownika lab, hasło lab. Podczas ćwiczeń będziemy używali bazy o nazwie lab 1. Gdy baza i użytkownik nie istnieją trzeba je utworzyć. Jak to zrobić pokazano niżej. Rozpoczynając wykonywanie dalszych ćwiczeń powinniśmy więc albo od razu podczas łączenia się do bazy MySQL wybrać bazę lab (przypominamy, że po przełączniku -p jest spacja. Gdyby jej nie było, to fraza lab zostałaby potraktowana jako hasło): shell> mysql -u lab -p lab Enter password: **** Bazę danych można wybrać też zaraz po udanym logowaniu (polecenie use lab): 1 Uwaga: w systemie MySQL użytkownik oraz baza danych to dwie różne rzeczy. Zwykle administrator tworząc nowego użytkownika, od razu tworzy dla niego nową bazę danych (użytkownik ma pełne uprawnienia do pracy z tą bazą) o takiej samej nazwie. W ogólności jednak nazwy te nie muszą być takie same. Z kontekstu wypowiedzi należy też wywnioskować czy mówiąc o bazie danych chodzi o system MySQL, czy też bazę danych w rozumieniu obiektu w systemie MySQL. 4

shell> mysql -u lab -p Enter password: **** use lab Database changed Aby upewnić się, jaki użytkownik jest zalogowany oraz do jakiej bazy jest on podłączony wykonaj dwa poniższe polecenia. Powinieneś na ekranie zobaczyć taki wynik: SELECT DATABASE(); +------------+ database() +------------+ lab +------------+ 1 row in set (0.00 sec) oraz SELECT CURRENT_USER(); current_user() lab@localhost 1 row in set (0.00 sec) Użytkownik lab ma taki zestaw uprawnień, który daje mu nieograniczony dostęp tylko do obiektów (głównie chodzi o tabele) w bazie lab. Próba przełączenia się na inną bazę danych zakończy się niepowodzeniem: use mysql ERROR 1044 (42000): Access denied for user 'lab'@'localhost' to database 'mysql' 11. W tym miejscu pokażemy jak utworzyć nową bazę lab oraz nowego użytkownika lab z hasłem lab. Polecenia te podajemy bez szczegółowego ich objaśniania. Czynimy tak, abyś mógł na swoim domowym komputerze wykonać analogiczne ćwiczenia jak te powyżej. Tworzenie oraz kasowanie baz danych oraz użytkowników to czynność zarezerwowana wyłącznie dla administratora MySQL-a. Trzeba to robić bardzo ostrożnie, gdyż bardzo łatwo jest spowodować w bazie danych ogromne spustoszenia! Aby wykonać poniższe ćwiczenia musisz zalogować się na użytkownika root, czyli: shell> mysql -h localhost -u root -p Dla pewności najpierw wydamy polecenia kasujące istniejącą bazę lab oraz użytkownika lab (gdyby okazało się, że w Twojej instalacji MySQL-a taka baza i taki użytkownik już istnieją). Zauważmy, że nazwa użytkownika oraz nazwa komputera (lab, localhost oraz %) są umieszczone w apostrofach. Apostrofy są konieczne w zasadzie tylko wtedy, gdy nazwy zawierają znaki specjalne, które są w szczególny sposób traktowane przez system operacyjny. W naszym przypadku można by apostrofy pominąć, jednak ich obecność w niczym nie przeszkadza. DROP DATABASE lab; 5

DROP USER 'lab'@'localhost'; Query OK, 0 rows affected (0.01 sec) DROP USER 'lab'@'%'; CREATE DATABASE lab; Query OK, 1 row affected (0.03 sec) Gdybyś w czasie wykonywania powyższych poleceń zobaczył poniższe komunikaty o błędach, będzie to oznaczało, że baza danych lab oraz użytkownik lab jeszcze nie istnieją w systemie (więc operacja kasowanie czegoś nieistniejącego nie może się udać). Z taką sytuacją spotkasz się, gdy polecenia uruchamiasz po raz pierwszy: DROP DATABASE lab; ERROR 1008 (HY000): Can't drop database 'lab'; database doesn't exist DROP USER 'lab'@'localhost'; ERROR 1396 (HY000): Operation DROP USER failed for 'lab'@'localhost' DROP USER 'lab'@'%'; ERROR 1396 (HY000): Operation DROP USER failed for 'lab'@'%' Teraz możemy wpisać polecenia tworzące nową bazę danych oraz konto użytkownika. Uwaga: w zasadzie musimy utworzyć dwa konta. Jedno ('lab'@'localhost' będzie używane tylko do łączenia się lokalnego komputera. Drugie ('lab'@'\%') można używać do łączenia się z dowolnego komputera. Nie wnikając na razie w szczegóły zapamiętaj, że musisz utworzyć oba konta. GRANT ALL PRIVILEGES ON lab.* TO 'lab'@'localhost' -> IDENTIFIED BY 'lab'; GRANT ALL PRIVILEGES ON lab.* TO 'lab'@'%' -> IDENTIFIED BY 'lab'; Po utworzeniu kont warto sprawdzić, czy wszystko jest w porządku. Wydajemy wiec polecenia sprawdzające. Najpierw musimy jednak przełączyć na bazę systemową (polecenie use mysql). Powinniśmy zobaczyć wynik taki jak poniżej: use mysql; Database changed SELECT host, user, password FROM user WHERE user LIKE 'lab'; host user password % lab *014CCBA08201296BAB648CAD12A48F7C93D7913D localhost lab *014CCBA08201296BAB648CAD12A48F7C93D7913D 2 rows in set (0.00 sec) 6

oraz SELECT host, db, user FROM db WHERE db LIKE 'lab'; +-----------+------+------+ host db user +-----------+------+------+ % lab lab localhost lab lab +-----------+------+------+ 2 rows in set (0.00 sec) Aby za każdym razem nie wpisywać mozolnie dość długich poleceń można wszystkie je zapisać w dowolnym pliku tekstowym i uruchomić w tzw. trybie wsadowym. Niech więc nasz plik wygląda jak poniżej: DROP DATABASE lab; DROP USER 'lab'@'localhost'; DROP USER 'lab'@'%'; CREATE DATABASE lab; GRANT ALL PRIVILEGES ON lab.* TO 'lab'@'localhost' IDENTIFIED BY 'lab'; GRANT ALL PRIVILEGES ON lab.* TO 'lab'@'%' IDENTIFIED BY 'lab'; USE mysql; SELECT host, user, password FROM user WHERE user LIKE 'lab'; SELECT host, db, user FROM db WHERE db LIKE 'lab'; Następnie z poziomu programu klienckiego MySQL monitor wydajemy polecenie source (lub jego skróconą wersję \. ukośnik oraz kropka), które odczyta ten pliku i wykona zapisane tam polecenia (ścieżkę dostępu oraz nazwę pliku musisz sam ustalić). Gdy wszystkie polecenia wykonają się poprawnie, na ekranie zobaczysz wynik podobny do poniższego: source c:\temp\mysql_01.sql Query OK, 0 rows affected (0.01 sec) Query OK, 1 row affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Database changed host user password % lab *014CCBA08201296BAB648CAD12A48F7C93D7913D localhost lab *014CCBA08201296BAB648CAD12A48F7C93D7913D 2 rows in set (0.01 sec) +-----------+-----+------+ host db user +-----------+-----+------+ 7

% lab lab localhost lab lab +-----------+-----+------+ 2 rows in set (0.00 sec) 12. Hasła użytkowników oraz adekwatny do wykonywanych zadań zestaw uprawnień są podstawą bezpiecznej pracy z systemem MySQL (oraz z każdą inną bazą danych). W ramach bieżącej instrukcji nie będziemy poznawali zagadnień (dość trudnych) dotyczących systemu uprawnień w MySQL-u. Poznamy natomiast polecenia służące do zmiany hasła użytkownika. Na początek zobaczmy na jakiego użytkownika jesteśmy zalogowani: SELECT USER(); user() lab@localhost 1 row in set (0.00 sec) Następnie zmieńmy hasło temu użytkownikowi: SET PASSWORD = PASSWORD('nowe-haslo'); lub też używając nieco,,nadmiarowej'' składni: SET PASSWORD FOR 'lab'@'localhost'= PASSWORD('nowe-haslo'); Od tego momentu logując się do bazy MySQL na konto lab musimy podawać hasło nowe-haslo. Zwykły użytkownik (nie administrator) może zmienić hasło tylko sobie. Administrator może zmieniać natomiast hasła dowolnych użytkowników. Robi to w następujący sposób: SET PASSWORD FOR 'lab'@'localhost'= PASSWORD('nowe-haslo'); SET PASSWORD FOR 'lab'@'%'= PASSWORD('mysql'); Jeżeli zwykły użytkownik (nie administrator) będzie chciał zmienić nie swoje hasło otrzyma następujący komunikat o błędzie: SET PASSWORD FOR 'root'@'localhost'= PASSWORD('nowe-haslo-root'); ERROR 1044 (42000): Access denied for user 'lab'@'localhost' to database 'mysql 8