Kurs języka HTML i CSS

Poradnik webmastera

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
Kurs MySQL

Przygotowujemy serwer baz danych

Email Drukuj PDF

Tematy: Do czego nam potrzebny serwer baz danych? | Instalacja serwera | Instalacja dodatkowych narzędzi w systemie Windows | Aktualizacja serwera | Przykładowa baza danych

W tym odcinku zastanowimy się, dlaczego warto korzystać z serwerów baz danych, zainstalujemy serwer MySQL i dodatkowe narzędzia administracyjne oraz przygotujemy przykładową bazę danych.

Do czego nam potrzebny serwer baz danych?

Serwery relacyjnych baz danych, takie jak MySQL (często nazywa się je systemami zarządzania bazami danych):

  1. Bezpiecznie przechowują zbiory dowolnych danych — bezpieczeństwo nie oznacza, że w wyniku np. awarii dysku dane nie zostaną utracone, ale że wprowadzona do bazy informacja będzie w niej zapisana, nawet jeżeli po zakończeniu operacji wystąpi jakaś awaria, np. serwer będzie nagle wyłączony.
  2. Umożliwiają wielu klientom jednoczesne pobieranie i modyfikowanie przechowywanych danych — w tym samym czasie setki (tysiące) osób mogą odczytywać i modyfikować dane.
  3. Umożliwiają klientom przetwarzanie danych za pomocą jakiejś wersji języka SQL — języka utworzonego specjalnie w celu uproszczenia wyszukiwania, sortowania czy modyfikowania danych.
  4. Umożliwiają kontrolowanie dostępu do danych — administrator bazy danych może nadawać i odbierać użytkownikom uprawnienia do wykonywania określonych operacji.

To tylko kilka najważniejszych zadań — wiele współczesnych serwerów baz danych to bardzo rozbudowane systemy, zintegrowane z jakimś środowiskiem programistycznym, uzupełnione mechanizmami automatycznego raportowania, przetwarzania i analizowania danych, pozwalające prawie całkowicie zautomatyzować typowe zadania administracyjne.

Na podstawie tych najważniejszych cech serwerów baz danych można już odpowiedzieć na zadane na początku pytanie: „Do czego nam potrzebny serwer baz danych?”.

Korzyści płynące z używania serwerów baz danych

Jedna z najważniejszych, ale bardzo często nieprzestrzeganych, dobrych zasad programowania mówi, że zanim zaczyna się tworzyć program (np. aplikację WWW), należy wybrać najlepszą do tego celu technologię. W ten sposób można zaoszczędzić mnóstwo pracy, a i tak efekt będzie o wiele lepszy niż wtedy, gdy programista „na siłę” i „po swojemu” próbuje uporać się z dawno rozwiązanym problem.

Dzięki serwerom baz danych:

  1. Można udostępniać jednocześnie wielu osobom dostęp do danych — każdy, kto próbował kiedyś samodzielnie napisać program, który pozwoliłby współdzielić zapisane np. w pliku dane, wie, że w ten sposób można oszczędzić sobie jakieś sześć miesięcy ciężkiej pracy.
  2. Wielokrotnie upraszcza się i przyspiesza operacje na danych, takie jak wyszukiwanie, sortowanie czy grupowanie — listę produktów można posortować napisaną samodzielnie funkcją, ale zdecydowanie prościej i lepiej jest skorzystać z optymalizowanego pod tym kątem serwera baz danych.
  3. Oddziela się dane od aplikacji — rozdzielnie poszczególnych zadań (przechowywania danych, realizacji logiki aplikacji, pobierania i zwracania danych) i przypisywanie ich osobnym komputerom jest podstawą od wielu lat królującej architektury wielowarstwowej. Programy wielowarstwowe są o wiele lepiej skalowalne, łatwiejsze w zarządzaniu i bezpieczniejsze.
  4. Upraszcza się dynamiczne generowanie kodu aplikacji WWW — HTML to język znaczników, które po zinterpretowaniu przez przeglądarkę określają wygląd strony. Jeżeli zatem tekst strony (np. aktualności) jest zapisany w bazie, to wystarczy go odczytać, dodać (często też zapisane w bazie) znaczniki i otrzymuje się dynamicznie wygenerowaną stronę WWW. W dodatku od teraz dodawanie czy zmienianie wiadomości na stronach nie wymaga jakiejkolwiek znajomości HTML-a (bo sprowadza się do zapisania tekstu w bazie), czyli może być przeprowadzone przez dowolną osobę. A ponieważ PHP jest językiem interpretowanym (czyli interpreter na bieżąco odczytuje kod źródłowy programu, interpretuje i wykonuje odczytane instrukcje), to można w ten sam sposób zapisywać i odczytywać z bazy instrukcje PHP.

Serwer MySQL był powszechnie używany do dynamicznego generowania stron WWW. Ponieważ jest to dość specyficzne zastosowanie (przede wszystkim dane są rzadko modyfikowane i odczytywane przez jednego — aplikację WWW — użytkownika, mają bardzo prostą strukturę i jest ich niewiele), MySQL znacznie różnił się od innych serwerów baz danych. Sytuacja od jakiegoś czasu się zmienia i od wersji 4. twórcy MySQL powoli upodabniają swój serwer do produktów konkurencji, implementując rozwiązania, które w innych serwerach pojawiły się wiele lat temu. MySQL nie jest jedynym ani najlepszym (takie wartościowanie nie ma sensu) serwerem baz danych, za to jest najpopularniejszym serwerem open source, szczególnie cenionym przez programistów PHP.

Serwer baz danych a baza danych

Serwer baz danych jest programem, który zarządza bazami danych. Natomiast utworzenie bazy danych i wypełnienie jej informacjami jest zadaniem programisty lub administratora serwera. Czyli po zainstalowaniu serwera należy jeszcze zaprojektować i utworzyć bazę danych, dopiero potem będzie można zastosować serwer w aplikacji WWW.

Baza danych utworzona w jednym serwerze (np. MySQL) nie może być bezpośrednio używana w innym środowisku (np. PostgreSQL), ale same tabele i zapisane w nich dane mogą być dość łatwo przenoszone pomiędzy serwerami. Znacznie gorzej wygląda kwestia przeniesienia utworzonych w bazie procedur lub funkcji.

Instalacja serwera

Serwer MySQL może działać zarówno w systemach GNU/Linux, jak i Microsoft Windows czy Mac OS. Kurs zawiera opis wersji 5.4 serwera MySQL. Jednak zanim dojdzie do instalacji serwera, warto zwrócić uwagę na kwestię licencji.

Licencjonowanie

MySQL jest udostępniany przez firmę MySQL AB na podstawie specyficznej, podwójnej licencji:

  1. Edycja MySQL Community Server jest dostępna na podstawie licencji GPL (http://www.gnu.org/licenses/licenses.pl.html) — z tej edycji serwera MySQL można korzystać na podstawie tej samej licencji, a więc bez żadnych opłat. W takim przypadku należy bezpłatnie udostępnić swój program i jego kod źródłowy.
  2. Edycja MySQL Enterprise jest płatna — jeżeli programista planuje dołączyć serwer MySQL lub jakąś jego część do komercyjnego programu, musi kupić od firmy MySQL AB odpowiednią licencję. Ta edycja jest wyposażona w dodatkowe narzędzia, a jej użytkownicy mają zagwarantowaną pomoc techniczną.

Jeżeli używa się serwera MySQL Community Server wyłącznie jako części komercyjnej (lub nie) strony WWW, można to robić bez kupowania licencji.

Instalacja w systemach Windows

Aby zainstalować serwer:

  1. Połącz się ze stroną http://dev.mysql.com/downloads i wybierz najnowszą, dostępną wersję MySQL-a.
  2. Pobierz kompletną wersję instalatora przeznaczonego dla Twojej wersji systemu Windows.
  3. Rozpakuj i uruchom pobrany plik (rysunek 1.1).
  4.  

    Rysunek 1.1. Instalacja serwera w systemie Windows jest bardzo prosta i sprowadza się do postępowania według wskazówek instalatora

  5. Kliknij Next i wybierz typową konfigurację (rysunek 1.2).
  6. Rysunek 1.2. Typowa konfiguracja obejmuje serwer, dokumentację i zestaw narzędzi administracyjnych

  7. Po kliknięciu Next, a następnie Install instalator zainstaluje serwer MySQL (w domyślnie skonfigurowanych systemach Windows Vista i Windows Server 2008 konieczne będzie jeszcze potwierdzenie posiadania uprawnień administracyjnych).

Konfiguracja

Zainstalowanie serwera nie oznacza, że możemy już tworzyć własną bazę danych — przedtem będziemy musieli go jeszcze skonfigurować i uruchomić.

  1. Po zakończeniu pracy instalator poinformuje nas o korzyściach płynących z wykupienia subskrypcji na edycję MySQL Enterprise oraz pozwoli nam uruchomić narzędzie do konfigurowania serwera i zarejestrować nasz serwer (rysunek 1.3).
  2. Rysunek 1.3. Serwer można skonfigurować w dowolnym momencie, wybierając zarejestrowany w menu Start program MySQL Server Instance Config Wizard

  3. Nie usuwając zaznaczenia żadnego pola wyboru, kliknij Finish — uruchomi się kreator konfiguracji serwera (on również wymaga do działania uprawnień administracyjnych).
  4. Kliknij Next i wybierz dokładną (ang. Detailed) konfigurację (rysunek 1.4).
  5. Rysunek 1.4. W ten sposób będziesz mógł dostosować MySQL-a do potrzeb programisty aplikacji WWW

  6. Kliknij Next i określ typ serwera (rysunek 1.5).
  7. Rysunek 1.5. Wybierając typ serwera, określamy ilość dostępnej dla niego pamięci operacyjnej i czasu procesora. Pierwsza opcja oznacza przyznanie serwerowi MySQL najmniejszej ilości zasobów komputera, ostatnia — największej

  8. Następne pytanie będzie dotyczyło przeznaczenia serwera (informacje na temat różnych typów tabel znajdują się w następnym odcinku kursu). Wybierz Multifunctional i kliknij Next (rysunek 1.6).
  9. Rysunek 1.6. W ramach kursu będziemy korzystali zarówno z relacyjnych baz danych, w standardowym tego słowa znaczeniu, jak i uproszczonych baz, typowych dla wcześniejszych wersji serwera MySQL

  10. Określ lokalizację plików danych (rysunek 1.7).
  11. Rysunek 1.7. Pliki z danymi powinny się znaleźć na osobnym, szybkim dysku

  12. Określ liczbę jednoczesnych połączeń z serwerem (rysunek 1.8).
  13. Rysunek 1.8. Właściwie określając liczbę jednoczesnych połączeń, poprawisz wydajność serwera

  14. Następne pytanie dotyczy konfiguracji sieci: włącz obsługę protokołu TCP/IP, określ port serwera i — jeżeli planujesz łączyć się z nim poprzez sieć — odblokuj port serwera MySQL na zaporze systemu Windows (rysunek 1.9).
  15. Rysunek 1.9. Upewnij się, że opcja Enable Strict Mode jest zaznaczona. Dzięki temu serwer będzie nieco bardziej zgodny ze startem języka SQL i jego zachowanie będzie bardziej przypominało zachowanie innych serwerów baz danych

  16. Ważną kwestią jest wybór sposobu kodowania danych tekstowych — wybór niewłaściwej strony kodowej spowoduje, że zamiast polskich znaków diakrytycznych zobaczymy jakieś „krzaczki” (rysunek 1.10).
  17. Rysunek 1.10. Najbezpieczniejszym sposobem kodowania jest UTF, ale wymaga więcej pamięci do zakodowania pojedynczego znaku

  18. Po kliknięciu Next będziesz mógł określić sposób działania i uruchamiania MySQL-a oraz dodać ścieżkę do folderu z narzędziami administracyjnymi do zmiennej systemowej Path (rysunek 1.11).
  19. Rysunek 1.11. Skonfiguruj MySQL-a jako automatycznie uruchamianą usługę — w ten sposób będziesz mógł się wylogować czy przelogować bez jego zatrzymywania. Jeżeli planujesz używać standardowych narzędzi administracyjnych, zaznacz też drugie pole wyboru — nazw programów nie będziesz musiał poprzedzać nazwą folderu

  20. Na końcu pozostaje podać hasło administratora serwera. Jeżeli będziesz zarządzał serwerem lokalnie, upewnij się, że pole Enable root access from remote machines nie jest zaznaczone. Ponieważ po podaniu tego hasła zyskasz pełną kontrolę nad serwerem, sprawdź, czy jest ono wystarczająco bezpieczne (rysunek 1.12).
  21. Rysunek 1.12. Zaznaczenie któregokolwiek oprócz pierwszego pola wyboru znacznie obniży poziom bezpieczeństwa serwera

  22. Po kliknięciu Next serwer zostanie skonfigurowany i uruchomiony (rysunek 1.13).
  23. Rysunek 1.13. Podsumowanie udanej konfiguracji MySQL-a — wprowadzone zmiany zostały zapisane w pliku my.ini

Jeżeli konfigurator nie mógł uruchomić usługi serwera MySQL, sprawdź, czy ta usługa nie była wcześniej uruchomiona, i jeżeli tak — zatrzymaj ją. Można to zrobić, klikając prawym przyciskiem myszy ikonę Komputer, wybierając opcję Zarządzaj i przechodząc do sekcji Usługi i aplikacje/Usługi.

Po zainstalowaniu i skonfigurowaniu serwera poświęć kilka minut i zarejestruj się jako kolejny z wielu użytkowników MySQL-a (rysunek 1.14).

    Rysunek 1.14. Rejestracja nie jest wymagana do korzystania z edycji MySQL Community Server, ale dzięki niej użytkownik jest na bieżąco informowany o nowych wersjach i aktualizacjach serwera MySQL

Weryfikacja instalacji

Żeby sprawdzić, czy serwer MySQL został poprawnie zainstalowany:

  1. Uruchom wiersz polecenia i sprawdź, czy możesz połączyć się z serwerem za pomocą podstawowego narzędzia klienckiego, monitora MySQL (listing 1.1).
  2. Listing 1.1. Testowe połączenie z lokalnym serwerem MySQL — teraz widać, dlaczego dodaliśmy ścieżkę do folderu bin serwera do zmiennej Path

    C:\Users\Marcin.VistaPC>mysql -u root -p

    Enter password: ******

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

    Your MySQL connection id is 2

    Server version: 5.4.1-beta-community MySQL Community Server (GPL)

     

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

     

    mysql> quit

    Bye

  3. Wyświetl listę domyślnych baz danych serwera MySQL (listing 1.2).
  4. Listing 1.2. W systemach Windows podczas instalacji automatycznie tworzone są dwie bazy systemowe i baza testowa

    C:\Users\Marcin.VistaPC>mysqlshow -uroot -p

    Enter password: ******

    +--------------------+

    | Databases |

    +--------------------+

    | information_schema |

    | mysql |

    | test |

    +--------------------+

     

    C:\Users\Marcin.VistaPC>

  5. Wyświetl tabele systemowej bazy danych mysql (listing 1.3).
  6. Listing 1.3. Systemowa baza INFORMATION_SCHEMA zawiera metadane dotyczące pozostałych baz danych; systemowa baza mysql zawiera między innymi informacje o użytkownikach serwera i ich uprawnieniach

    C:\Users\Marcin.VistaPC>mysqlshow -uroot -p mysql

    Enter password: ******

    Database: mysql

    +---------------------------+

    | Tables |

    +---------------------------+

    | columns_priv |

    | db |

    | event |

    | func |

    | general_log |

    | help_category |

    | help_keyword |

    | help_relation |

    | help_topic |

    | host |

    | ndb_binlog_index |

    | plugin |

    | proc |

    | procs_priv |

    | servers |

    | slow_log |

    | tables_priv |

    | time_zone |

    | time_zone_leap_second |

    | time_zone_name |

    | time_zone_transition |

    | time_zone_transition_type |

    | user |

    +---------------------------+

Instalacja w systemach GNU/Linux

Dlaczego używam nazwy GNU/Linux, a nie po prostu Linux? Najlepiej wyjaśnią to słowa założyciela Fundacji Wolnego Oprogramowania (http://www.fsf.org), Richarda Stallmana: Bardzo proszę nie nazywać systemu operacyjnego Linuksem. Linuksowe jądro jest tylko niewielką częścią systemu operacyjnego. Znaczna część programów stanowiących razem system operacyjny, który nazywa pan Linuksem, nie została napisana przez Linusa Torvaldsa. Programy te stworzyli ochotnicy pracujący w ramach projektu GNU i poświęcający na to swój prywatny czas. Dzięki temu mamy wolny system operacyjny w obecnej postaci. Nieuznawanie ich wysiłków jest niegrzeczne i fałszuje fakty historyczne. Dlatego proszę, aby pan, mówiąc o tym systemie operacyjnym, używał jego właściwej nazwy: GNU/Linux.

W systemach GNU/Linux Sewer MySQL może być zainstalowany:

  1. Z pakietów dystrybucyjnych wchodzących w skład danej dystrybucji systemu operacyjnego; w takim przypadku instalacja będzie — tak jak w systemach Windows — w pełni automatyczna. Wadą tego rozwiązania jest to, że systemy operacyjne z reguły nie zawierają najnowszej wersji serwera mySQL (listing 1.4).
    1. Po zainstalowaniu serwera MySQL uruchom serwer baz danych (listing 1.5).
    2. Listing 1.5. Ręczne uruchomienie serwera baz danych

      [root@maszynka init.d]# service mysqld start

      Inicjowanie bazy danych MySQL: Installing all prepared tables

      Fill help tables

       

      To start mysqld at boot time you have to copy support-files/mysql.server

      to the right place for your system

       

      PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

      To do so, start the server, then issue the following commands:

      /usr/bin/mysqladmin -u root password 'new-password'

      /usr/bin/mysqladmin -u root -h maszynka.wizzard password 'new-password'

      See the manual for more instructions.

       

      You can start the MySQL daemon with:

      cd /usr ; /usr/bin/mysqld_safe &

       

      You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:

      cd sql-bench ; perl run-all-tests

       

      Please report any problems with the /usr/bin/mysqlbug script!

       

      The latest information about MySQL is available on the web at

      http://www.mysql.com

      Support MySQL by buying support/licenses at https://order.mysql.com

       [ OK ]

      Uruchamianie MySQL: [ OK ]

    3. Ustaw (w systemach Windows konfigurowane przez instalatora) hasło administratora serwera MySQL (listing 1.6).
    4. Listing 1.6. Użytkownik root MySQL-a i konto root w systemie operacyjnym to dwa kompletnie różne konta i powinny mieć różne hasła

      mysqladmin -u root password 'H@$$l0BD'

  2. Listing 1.4. W ten sposób nie tylko zostaną automatycznie pobrane i zainstalowane wszystkie składniki MySQL-a, ale również wymagane do działania serwera składniki systemu

    [root@maszynka ~]# yum install mysql*

    Loading "installonlyn" plugin

    Setting up Install Process

    Setting up repositories

    core  [1/3]

    extras [2/3]

    updates [3/3]

    Reading repository metadata in from local files

    Parsing package install arguments

    Resolving Dependencies

    --> Populating transaction set with selected packages. Please wait.

    ---> Downloading header for mysql-devel to pack into transaction set.

    Dependencies Resolved

    Installing:

     mysql-administrator i386 1.1.6-3.fc5 extras 1.5 M

     mysql-bench i386 5.0.18-2.1 core 514 k

     mysql-connector-odbc i386 3.51.12-1.2.1 core 141 k

     mysql-devel i386 5.0.18-2.1 core 2.3 M

     mysql-gui-common i386 1.1.6-3.fc5 extras 210 k

     mysql-server i386 5.0.18-2.1 core 6.6 M

     mysqlclient10 i386 3.23.58-9.2 core 253 k

     mysqlclient10-devel i386 3.23.58-9.2 core 50 k

     mysqlclient14 i386 4.1.14-4.2 core 1.1 M

     mysqlclient14-devel i386 4.1.14-4.2 core 94 k

    Installing for dependencies:

     glibmm24 i386 2.8.4-1 extras 141 k

     gtkmm24 i386 2.8.3-1 extras 967 k

     libsigc++20 i386 2.0.17-1 extras 49 k

     perl-DBD-MySQL i386 3.0002-2.2.2 core 150 k

     unixODBC i386 2.2.11-6.2.1 core 905 k

     

    Transaction Summary

    =============================================================================

    Install 15 Package(s)

    Update 0 Package(s)

    Remove 0 Package(s)

    Total download size: 15 M

    Is this ok [y/N]: y

    Downloading Packages:

    (1/15): mysql-devel-5.0.1 100% |=========================| 2.3 MB 01:18

    (2/15): mysqlclient14-dev 100% |=========================| 94 kB 00:02

    (3/15): glibmm24-2.8.4-1. 100% |=========================| 141 kB 00:02

    (4/15): mysqlclient10-3.2 100% |=========================| 253 kB 00:09

    (5/15): mysql-bench-5.0.1 100% |=========================| 514 kB 00:20

    (6/15): unixODBC-2.2.11-6 100% |=========================| 905 kB 00:33

    (7/15): mysqlclient14-4.1 100% |=========================| 1.1 MB 00:44

    (8/15): gtkmm24-2.8.3-1.i 100% |=========================| 967 kB 00:10

    (9/15): mysql-administrat 100% |=========================| 1.5 MB 00:26

    (10/15): mysql-connector- 100% |=========================| 141 kB 00:06

    (11/15): mysql-server-5.0 100% |=========================| 6.6 MB 04:23

    (12/15): mysqlclient10-de 100% |=========================| 50 kB 00:01

    (13/15): libsigc++20-2.0. 100% |=========================| 49 kB 00:02

    (14/15): mysql-gui-common 100% |=========================| 210 kB 00:10

    (15/15): perl-DBD-MySQL-3 100% |=========================| 150 kB 00:07

    Running Transaction Test

    Finished Transaction Test

    Transaction Test Succeeded

    Running Transaction

     Installing: libsigc++20 ####################### [ 1/15]

     Installing: glibmm24 ####################### [ 2/15]

     Installing: gtkmm24 ####################### [ 3/15]

     Installing: perl-DBD-MySQL ####################### [ 4/15]

     Installing: mysql-gui-common ####################### [ 5/15]

     Installing: mysqlclient14 ####################### [ 6/15]

     Installing: unixODBC ####################### [ 7/15]

     Installing: mysqlclient10 ####################### [ 8/15]

     Installing: mysql-devel ####################### [ 9/15]

     Installing: mysqlclient14-devel ####################### [10/15]

     Installing: mysql-bench ####################### [11/15]

     Installing: mysql-administrator ####################### [12/15]

     Installing: mysql-connector-odbc ####################### [13/15]

     Installing: mysql-server ####################### [14/15]

     Installing: mysqlclient10-devel ####################### [15/15]

    Installed: mysql-administrator.i386 0:1.1.6-3.fc5 mysql-bench.i386 0:5.0.18-2.1 mysql-connector-odbc.i386 0:3.51.12-1.2.1 mysql-devel.i386 0:5.0.18-2.1 mysql-gui-common.i386 0:1.1.6-3.fc5 mysql-server.i386 0:5.0.18-2.1 mysqlclient10.i386 0:3.23.58-9.2 mysqlclient10-devel.i386 0:3.23.58-9.2 mysqlclient14.i386 0:4.1.14-4.2 mysqlclient14-devel.i386 0:4.1.14-4.2

    Dependency Installed: glibmm24.i386 0:2.8.4-1 gtkmm24.i386 0:2.8.3-1 libsigc++20.i386 0:2.0.17-1 perl-DBD-MySQL.i386 0:3.0002-2.2.2 unixODBC.i386 0:2.2.11-6.2.1

    Complete!

  3. Drugi sposób instalacji serwera MySQL polega na skorzystaniu z najnowszych, dostępnych w internecie (na przykład na stronie danej dystrybucji systemu GNU/Linux lub pod adresem http://dev.mysql.com/downloads) pakietów dystrybucyjnych. W zamieszczonej pod adresem http://isoredirect.centos.org/centos/5/isos/i386 dystrybucji CentOS 5.3 instalacja przebiega następująco (listing 1.7).
    1. Po zainstalowaniu serwera i zmienieniu hasła jego administratora możemy połączyć się z nim za pomocą monitora MySQL (listing 1.8).
    2. Listing 1.8. Najprostszym sposobem zweryfikowania poprawności instalacji serwera jest połączenie się z nim za pomocą standardowego narzędzia klienckiego

      [root@localhost user1]# /usr/bin/mysqladmin -u root password 'haslo'

      [root@localhost user1]# mysql -u root -p

      Enter password:

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

      Your MySQL connection id is 2

      Server version: 5.4.1-beta-community MySQL Community Server (GPL)

      Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

      mysql>

  4. Listing 1.7. Instalacja serwera MySQL z najnowszych pakietów rpm

    [root@localhost user1]# rpm -ivh MySQL-shared-compat-5.4.1-0.rhel5.i386.rpm

    Przygotowywanie...          ########################################### [100%]

       1:MySQL-shared-compat    ########################################### [100%]

     

    [root@localhost user1]# rpm -ivh MySQL-client-community-5.4.1-0.rhel5.i386.rpm

    Przygotowywanie...          ########################################### [100%]

       1:MySQL-client-community ########################################### [100%]

     

    [root@localhost user1]# rpm -ivh MySQL-server-community-5.4.1-0.rhel5.i386.rpm

    Przygotowywanie...          ########################################### [100%]

       1:MySQL-server-community ########################################### [100%]

    090819 10:46:27 [Warning] Forcing shutdown of 2 plugins

    090819 10:46:27 [Warning] Forcing shutdown of 2 plugins

     

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

    To do so, start the server, then issue the following commands:

     

    /usr/bin/mysqladmin -u root password 'new-password'

    /usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

     

    Alternatively you can run:

    /usr/bin/mysql_secure_installation

     

    which will also give you the option of removing the test

    databases and anonymous user created by default.  This is

    strongly recommended for production servers.

     

    See the manual for more instructions.

     

    Please report any problems with the /usr/bin/mysqlbug script!

     

    The latest information about MySQL is available at http://www.mysql.com/

    Support MySQL by buying support/licenses from http://shop.mysql.com/

     

    Starting MySQL............[  OK  ]

    Giving mysqld 2 seconds to start

  5. Trzeci sposób instalacji serwera MySQL w systemach GNU/Linux polega na jego samodzielnej kompilacji z dostępnych pod adresem http://dev.mysql.com plików źródłowych (listing 1.9).
  6. Listing 1.9. Dostępny na podstawie otwartej licencji GPL serwer MySQL można samodzielnie skompilować, dostosowując do go indywidualnych wymagań

    [tmf@maszyna mysql-5.4.1-beta]$ ./configure

    checking build system type... x86_64-unknown-linux-gnu

    checking host system type... x86_64-unknown-linux-gnu

    checking target system type... x86_64-unknown-linux-gnu

    checking for a BSD-compatible install... /usr/bin/install -c

    configure: creating ./config.status

    config.status: creating libmysql/libmysql.ver

    config.status: creating zlib/Makefile

    config.status: creating extra/yassl/Makefile

    config.status: creating extra/yassl/taocrypt/Makefile

    config.status: creating extra/yassl/taocrypt/benchmark/Makefile

    config.status: creating extra/yassl/taocrypt/src/Makefile

    config.status: creating extra/yassl/taocrypt/test/Makefile

    config.status: creating extra/yassl/src/Makefile

    config.status: creating extra/yassl/testsuite/Makefile

    config.status: creating plugin/daemon_example/Makefile

    config.status: creating plugin/fulltext/Makefile

    config.status: creating storage/archive/Makefile

    config.status: creating storage/blackhole/Makefile

    config.status: creating storage/csv/Makefile

    config.status: creating storage/example/Makefile

    config.status: creating storage/federated/Makefile

    config.status: creating storage/heap/Makefile

    config.status: creating storage/innobase/Makefile

    config.status: creating storage/myisam/Makefile

    config.status: creating storage/myisammrg/Makefile

    config.status: creating pstack/Makefile

    config.status: creating pstack/aout/Makefile

    config.status: creating cmd-line-utils/readline/Makefile

    config.status: creating Makefile

    config.status: creating extra/Makefile

    config.status: creating mysys/Makefile

    config.status: creating unittest/Makefile

    config.status: creating unittest/mytap/Makefile

    config.status: creating unittest/mytap/t/Makefile

    config.status: creating unittest/mysys/Makefile

    config.status: creating unittest/examples/Makefile

    config.status: creating strings/Makefile

    config.status: creating regex/Makefile

    config.status: creating storage/Makefile

    config.status: creating man/Makefile

    config.status: creating BUILD/Makefile

    config.status: creating vio/Makefile

    config.status: creating libmysql/Makefile

    config.status: creating libmysql_r/Makefile

    config.status: creating client/Makefile

    config.status: creating sql/Makefile

    config.status: creating sql/share/Makefile

    config.status: creating sql/sql_builtin.cc

    config.status: creating sql-common/Makefile

    config.status: creating dbug/Makefile

    config.status: creating scripts/Makefile

    config.status: creating include/Makefile

    config.status: creating tests/Makefile

    config.status: creating Docs/Makefile

    config.status: creating support-files/Makefile

    config.status: creating support-files/MacOSX/Makefile

    config.status: creating support-files/RHEL4-SElinux/Makefile

    config.status: creating cmd-line-utils/Makefile

    config.status: creating cmd-line-utils/libedit/Makefile

    config.status: creating libmysqld/Makefile

    config.status: creating libmysqld/examples/Makefile

    config.status: creating mysql-test/Makefile

    config.status: creating mysql-test/lib/My/SafeProcess/Makefile

    config.status: creating netware/Makefile

    config.status: creating sql-bench/Makefile

    config.status: creating include/mysql_version.h

    config.status: creating plugin/Makefile

    config.status: creating win/Makefile

    config.status: creating include/config.h

    config.status: executing depfiles commands

    config.status: executing libtool commands

    /bin/rm: cannot remove `libtoolT': No such file or directory

    config.status: executing default commands

     

    MySQL has a Web site at http://www.mysql.com/ which carries details on the

    latest release, upcoming features, and other information to make your

    work or play with MySQL more productive. There you can also find

    information about mailing lists for MySQL discussion.

     

    Remember to check the platform specific part of the reference manual for

    hints about installing MySQL on your platform. Also have a look at the

    files in the Docs directory.

     

    Thank you for choosing MySQL!

     

    [tmf@maszyna mysql-5.4.1-beta]$ make

    make[1]: Wejście do katalogu `/home/tmf/mysql/mysql-5.4.1-beta/libmysql'

    make  install-am

    make[2]: Wejście do katalogu `/home/tmf/mysql/mysql-5.4.1-beta/libmysql'

    make[3]: Wejście do katalogu `/home/tmf/mysql/mysql-5.4.1-beta/libmysql'

    test -z "/usr/local/lib/mysql" || /bin/mkdir -p "/usr/local/lib/mysql"

     /bin/sh ../libtool --preserve-dup-deps   --mode=install /usr/bin/install

    -c  'libmysqlclient.la' '/usr/local/lib/mysql/libmysqlclient.la'

    libtool: install: /usr/bin/install -c .libs/libmysqlclient.so.16.0.0

    /usr/local/lib/mysql/libmysqlclient.so.16.0.0

    libtool: install: (cd /usr/local/lib/mysql && { ln -s -f

    libmysqlclient.so.16.0.0 libmysqlclient.so.16 || { rm -f

    libmysqlclient.so.16 && ln -s libmysqlclient.so.16.0.0

    libmysqlclient.so.16; }; })

    libtool: install: (cd /usr/local/lib/mysql && { ln -s -f

    libmysqlclient.so.16.0.0 libmysqlclient.so || { rm -f libmysqlclient.so &&

    ln -s libmysqlclient.so.16.0.0 libmysqlclient.so; }; })

    libtool: install: /usr/bin/install -c .libs/libmysqlclient.lai

    /usr/local/lib/mysql/libmysqlclient.la

    libtool: install: /usr/bin/install -c .libs/libmysqlclient.a

    /usr/local/lib/mysql/libmysqlclient.a

    libtool: install: chmod 644 /usr/local/lib/mysql/libmysqlclient.a

    libtool: install: ranlib /usr/local/lib/mysql/libmysqlclient.a

    libtool: finish:

    PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin"

    ldconfig -n /usr/local/lib/mysql

    ----------------------------------------------------------------------

    Libraries have been installed in:

       /usr/local/lib/mysql

     

    If you ever happen to want to link against installed libraries

    in a given directory, LIBDIR, you must either use libtool, and

    specify the full pathname of the library, or use the `-LLIBDIR'

    flag during linking and do at least one of the following:

       - add LIBDIR to the `LD_LIBRARY_PATH' environment variable

         during execution

       - add LIBDIR to the `LD_RUN_PATH' environment variable

         during linking

       - use the `-Wl,-rpath -Wl,LIBDIR' linker flag

       - have your system administrator add LIBDIR to `/etc/ld.so.conf'

Instalacja dodatkowych narzędzi w systemie Windows

Standardowe narzędzia administracyjne może są funkcjonalne, ale zdecydowanie nie są przyjazne dla użytkownika. Na potrzeby kursu zainstalujemy dwa dodatkowe, graficzne narzędzia: jedno służące do administrowania serwerem, drugie do pisania programów w języku SQL. Oba programy są bezpłatne i dostępne na stronie http://www.mysql.com/products/tools.

W internecie jest mnóstwo narzędzi do zarządzania serwerem MySQL. Niektóre z nich umożliwiają administrowanie przez WWW — na przykład popularny PHPMyAdmin. Korzystanie z tego programu (a przynajmniej z jego niektórych wersji) nie wymaga do uzyskania pełnego dostępu do serwera podania nazwy użytkownika i hasła. Innymi słowy, po jego zainstalowaniu i skonfigurowaniu wszyscy internauci będą mogli zarządzać serwerem — będą oni mogli odczytywać i modyfikować dane, tworzyć własne bazy, usuwać już istniejące itd. Nie należy instalować i używać programów, które obniżają poziom bezpieczeństwa do zera.

Żeby zainstalować pakiet narzędzi, w którego skład wchodzą: MySQL Administrator, MySQL Query Browser oraz MySQL Migration Toolkit:

  1. Połącz się ze stroną http://dev.mysql.com/downloads/gui-tools/5.0.html.
  2. Pobierz przeznaczoną dla Twojego systemu operacyjnego wersję pakietu.
  3. Uruchom pobrany program instalacyjny.
  4. Kliknij Next i zaakceptuj licencję końcowego użytkownika (te programy również są dostępne na podstawie licencji GNU).
  5. Wskaż lokalizację plików.
  6. Wybierz kompletną instalację.
  7. Kliknij Next, a następnie Install. Po ewentualnym potwierdzeniu posiadania uprawnień administracyjnych pakiet narzędzi zostanie zainstalowany.

MySQL Administrator

MySQL Administrator jest narzędziem do zarządzania serwerem MySQL — pozwala on między innymi: uruchamiać i zatrzymać serwer baz danych, konfigurować jego opcje startowe, tworzyć użytkowników i zarządzać nimi, monitorować pracę serwera, tworzyć i odtwarzać kopie zapasowe baz danych czy sprawdzać stan poszczególnych baz danych.

  1. Uruchom zainstalowany program, zarejestrowany w sekcji Wszystkie programy/MySQL. W celu nawiązania połączenia będziesz musiał podać prawidłowe dane uwierzytelniające (rysunek 1.15).
  2. Rysunek 1.15. MySQL Administrator nie przechowuje haseł użytkowników

  3. Po podaniu prawidłowej nazwy serwera, użytkownika i hasła, wyświetli się główne okno programu (rysunek 1.16).
  4. Rysunek 1.16. Graficzne narzędzie administratora serwera baz danych w wersji dla systemów Windows pozwala nie tylko zarządzać serwerem MySQL, ale również uruchamiać inne narzędzia administracyjne

W systemach Windows razem z programem MySQL Administrator zainstalowany zostanie dodatkowy program — MySQL System Tray Monitor. Dodaj ikonę tego programu do folderu Autostart (można to zrobić, klikając prawym przyciskiem myszy Start, wybierając Eksploruj wszystkich użytkowników i przeciągając myszą skrót MySQL System Tray Monitor do folderu Autostart) — w ten sposób po ponownym uruchomieniu systemu na pasku powiadomień systemu operacyjnego pojawi się ikona informująca Cię o tym, czy MySQL działa, czy został zatrzymany.

Klikając ikonę tego programu prawym przyciskiem myszy, wyświetlisz menu kontekstowe, pozwalające szybko uruchomić lub zatrzymać serwer baz danych, skonfigurować podstawowe opcje czy uruchomić program MySQL Administrator (rysunek 1.17).

    Rysunek 1.17. Menu kontekstowe narzędzia MySQL System Tray Monitor

MySQL Query Browser

Drugim przydatnym — głównie programistom baz danych (i nam w trakcie większej części kursu) — narzędziem jest MySQL Query Browser. Jest to program pozwalający wykonywać instrukcje języka SQL.

  1. Uruchom program MySQL Query Browser. Do nawiązania połączenia będziesz musiał podać prawidłowe dane uwierzytelniające, tym razem dodatkowo wskazując domyślny schemat.
  2. Schemat albo przestrzeń nazw to zbiór powiązanych ze sobą obiektów bazy danych. Na przykład komplet tabel przechowujących dane marketingowe włącznie z odpowiednimi widokami i procedurami może być zapisany w schemacie marketing. Odpowiednikiem schematu jest w MySQL-u baza danych.

  3. Ponieważ nazwy obiektów (na przykład tabel) są jednoznaczne w ramach schematu (czyli w schematach X i Y może być tabela o tej samej nazwie), niepodanie domyślnego schematu spowoduje wyświetlenie ostrzeżenia (rysunek 1.18).
  4. Rysunek 1.18. Tym razem zignoruj ostrzeżenie i uruchom program

  5. Po uruchomieniu zobaczysz graficzny program pozwalający szybko i łatwo pisać instrukcje języka SQL — pokazane na rysunku 1.19 instrukcje zostały „napisane” przy użyciu myszy, poprzez przeciągnięcie obiektów z okienek menu bocznego do głównego okna programu.
  6. Rysunek 1.19. MySQL Query Browser pozwala nie tylko szybko napisać instrukcję SQL, ale również sprawdzić strukturę bazy czy wyświetlić pomoc dotyczącą pisanego kodu

Aktualizacja serwera

Aktualizacja serwera MySQL polega na zastąpieniu nową wersją wcześniejszej wersji serwera, dlatego zaleca się stopniowe aktualizacje do następnej wersji. Na przykład serwer w wersji 4.0 należy najpierw zaktualizować do wersji 4.1, następnie 4.2 itd. Żeby zaktualizować serwer MySQL:

  1. Wykonaj kopię zapasową wszystkich baz danych. W tym przypadku zalecaną metodą utworzenia kopii zapasowych jest skorzystanie z narzędzia mysqldump. Utworzony w poniższy sposób plik backup.sql będzie zawierał instrukcje tworzące i wypełniające oryginalnymi danymi wszystkie bazy danych:

C:\Users\Marcin.VistaPC>mysqldump -uroot -p --all-databases >c:\temp\backup.sql

Enter password: ****

  1. Zatrzymaj usługę serwera MySQL.
  2. Uruchom program instalacyjny nowszej wersji tego serwera.
  3. Odtwórz wykonaną w punkcie 1. kopię zapasową baz danych.
  4. Po zakończeniu aktualizacji sprawdź spójność baz danych za pomocą polecenia mysql_upgrade.

Przykładowa baza danych

W dalszej części kursu nauczysz się projektować i tworzyć bazy danych, ale przez większą jego część będziemy używać gotowej, prostej bazy danych. Aby ją utworzyć:

  1. Uruchom program MySQL Query Browser i połącz się z lokalnym serwerem, nie podając domyślnego schematu.
  2. Skopiuj do pustego pliku listing 1.10 i zapisz go z rozszerzeniem .sql.
  3. Listing 1.10. Skrypt tworzący testową bazę danych, sześć powiązanych tabel i wypełniający te tabele danymi

    DROP DATABASE IF EXISTS test;

    CREATE DATABASE test;

    USE test;

     

    CREATE TABLE customer

    (

     customer_id int AUTO_INCREMENT NOT NULL PRIMARY KEY,

     title char(4) ,

     fname varchar(32) ,

     lname varchar(32) NOT NULL,

     addressline varchar(64) ,

     town varchar(32) ,

     zipcode char(10) NOT NULL,

     phone varchar(16)

    ) TYPE = InnoDB;

     

    CREATE TABLE item

    (

     item_id int AUTO_INCREMENT NOT NULL PRIMARY KEY,

     description varchar(64) NOT NULL,

     cost_price numeric(7,2) ,

     sell_price numeric(7,2)

    ) TYPE = InnoDB;

     

     

    CREATE TABLE orderinfo

    (

     orderinfo_id int AUTO_INCREMENT NOT NULL PRIMARY KEY,

     customer_id integer NOT NULL,

     date_placed date NOT NULL,

     date_shipped date ,

     shipping numeric(7,2),

     INDEX (customer_id),

     CONSTRAINT orderinfo_customer_id_fk FOREIGN KEY(customer_id) REFERENCES customer(customer_id)

    ) TYPE = InnoDB;

     

    CREATE TABLE stock

    (

     item_id integer NOT NULL AUTO_INCREMENT PRIMARY KEY,

     quantity integer NOT NULL,

     CONSTRAINT stock_item_id_fk FOREIGN KEY(item_id) REFERENCES item(item_id)

    ) TYPE = InnoDB;

     

     

    CREATE TABLE orderline

    (

     orderinfo_id integer NOT NULL,

     item_id integer NOT NULL,

     quantity integer NOT NULL,

     PRIMARY KEY(orderinfo_id, item_id),

     INDEX(item_id),

     CONSTRAINT orderline_orderlinfo_id_fk FOREIGN KEY (orderinfo_id) REFERENCES orderinfo(orderinfo_id),

     CONSTRAINT orderline_item_id_fk FOREIGN KEY (item_id) REFERENCES item(item_id)

    ) TYPE = InnoDB;

     

    CREATE TABLE barcode

    (

     barcode_ean char(13) NOT NULL PRIMARY KEY,

     item_id integer NOT NULL,

     INDEX(item_id),

     CONSTRAINT barcode_item_id_fk FOREIGN KEY(item_id) REFERENCES item(item_id)

    ) TYPE = InnoDB;

     

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Miss','Jenny','Stones','27 Rowan Avenue','Hightown','NT2 1AQ','023 9876');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Andrew','Stones','52 The Willows','Lowtown','LT5 7RA','876 3527');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Miss','Alex','Matthew','4 The Street','Nicetown','NT2 2TX','010 4567');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Adrian','Matthew','The Barn','Yuleville','YV67 2WR','487 3871');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Simon','Cozens','7 Shady Lane','Oahenham','OA3 6QW','514 5926');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Neil','Matthew','5 Pasture Lane','Nicetown','NT3 7RT','267 1232');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Richard','Stones','34 Holly Way','Bingham','BG4 2WE','342 5982');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mrs','Anna','Stones','34 Holly Way','Bingham','BG4 2WE','342 5982');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mrs','Christine','Hickman','36 Queen Street','Histon','HT3 5EM','342 5432');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Mike','Howard','86 Dysart Street','Tibsville','TB3 7FG','505 5482');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Dave','Jones','54 Vale Rise','Bingham','BG3 8GD','342 8264');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Richard','Neill','42 Thached way','Winersby','WB3 6GQ','505 6482');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mrs','Laura','Hendy','73 Margeritta Way','Oxbridge','OX2 3HX','821 2335');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','Bill','Neill','2 Beamer Street','Welltown','WT3 8GM','435 1234');

    INSERT INTO customer(title, fname, lname, addressline, town, zipcode, phone) VALUES('Mr','David','Hudson','4 The Square','Milltown','MT2 6RT','961 4526');

    INSERT INTO customer(lname, zipcode) VALUES('Wolski','MX2 6RV');

     

     

     

    INSERT INTO item(description, cost_price, sell_price) VALUES('Wood Puzzle', 15.23, 21.95);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Rubik Cube', 7.45, 11.49);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Linux CD', 1.99, 2.49);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Tissues', 2.11, 3.99);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Picture Frame', 7.54, 9.95);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Fan Small', 9.23, 15.75);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Fan Large', 13.36, 19.95);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Toothbrush', 0.75, 1.45);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Roman Coin', 2.34, 2.45);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Carrier Bag', 0.01, 0.0);

    INSERT INTO item(description, cost_price, sell_price) VALUES('Speakers', 19.73, 25.32);

    INSERT INTO item (description) VALUES ('SQL Server 2005');

     

     

    INSERT INTO orderinfo(customer_id, date_placed, date_shipped, shipping) VALUES(3, '2000-03-13', '2000-03-17', 2.99);

    INSERT INTO orderinfo(customer_id, date_placed, date_shipped, shipping) VALUES(8, '2000-06-23', '2000-06-23', 0.00);

    INSERT INTO orderinfo(customer_id, date_placed, date_shipped, shipping) VALUES(15, '2000-09-02', '2000-09-12', 3.99);

    INSERT INTO orderinfo(customer_id, date_placed, date_shipped, shipping) VALUES(13, '2000-09-03', '2000-09-10', 2.99);

    INSERT INTO orderinfo(customer_id, date_placed, date_shipped, shipping) VALUES(8, '2000-07-21', '2000-07-24', 0.00);

     

     

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(1, 4, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(1, 7, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(1, 9, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(2, 1, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(2, 10, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(2, 7, 2);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(2, 4, 2);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(3, 2, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(3, 1, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(4, 5, 2);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(5, 1, 1);

    INSERT INTO orderline(orderinfo_id, item_id, quantity) VALUES(5, 3, 1);

     

     

     

    INSERT INTO stock(item_id, quantity) VALUES(1,12);

    INSERT INTO stock(item_id, quantity) VALUES(2,2);

    INSERT INTO stock(item_id, quantity) VALUES(4,8);

    INSERT INTO stock(item_id, quantity) VALUES(5,3);

    INSERT INTO stock(item_id, quantity) VALUES(7,8);

    INSERT INTO stock(item_id, quantity) VALUES(8,18);

    INSERT INTO stock(item_id, quantity) VALUES(10,1);

     

     

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6241527836173', 1);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6241574635234', 2);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6264537836173', 3);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6241527746363', 3);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('7465743843764', 4);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('3453458677628', 5);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6434564564544', 6);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('8476736836876', 7);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('6241234586487', 8);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('9473625532534', 8);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('9473627464543', 8);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('4587263646878', 9);

    INSERT INTO barcode(barcode_ean, item_id) VALUES('9879879837489', 11);

    INSERT INTO barcode(barcode_ean, item_id) values('2239872376872', 11);

  4. Otwórz (wybierając Plik/Otwórz skrypt) utworzony skrypt.
  5. Kliknij przycisk Wykonaj (rysunek 1.20).
  6. Rysunek 1.20. Po wykonaniu skryptu pojawi się w prawym górnym okienku menu bocznego programu baza test, a w niej sześć tabel

Gdyby wykonanie skryptu skończyło się błędem związanym z niemożliwością utworzenia tabel typu InnoDB, włącz obsługę tego typu tabel i raz jeszcze uruchom skrypt. Informacje o tym, jak włączyć tę funkcjonalność, znajdziesz w drugim odcinku kursu.

 

PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych

PHP, MySQL i MVC.
Tworzenie witryn WWW
opartych na bazie danych

PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty.

PHP i MySQL. Tworzenie stron WWW.
Vademecum profesjonalisty.

PHP i MySQL. Projekty do wykorzystania

PHP i MySQL.
Projekty do wykorzystania

Nowości Helionu

Statystyki

Użytkowników : 766
Artykułów : 513
Zakładki : 28
Odsłon : 15166555