MySQL. Podrecznik administratora.pdf

(448 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
MySQL. Podrêcznik
SPIS TRECI
administratora
KATALOG KSI¥¯EK
Autor: Paul Dubois
T³umaczenie: Tomasz Pêdziwiatr (rozdz. 5 – 10,
dod. A, B), Grzegorz Werner (rozdz. 1 – 4)
ISBN: 83-7361-687-X
Format: B5, stron: 712
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Ksi¹¿ka „MySQL. Podrêcznik administratora” to zbiór informacji niezbêdnych do pracy
osobie odpowiadaj¹cej za poprawn¹ pracê MySQL. Przedstawia wszystkie zagadnienia
zwi¹zane z instalacj¹, administrowaniem i optymalizowaniem bazy. Opisuje metody
replikowania danych, zarz¹dzania kontami u¿ytkowników i zabezpieczania danych
przed uszkodzeniem oraz zaawansowane mechanizmy sk³adowania InnoDB
i narzêdzia wchodz¹ce w sk³ad pakietu MySQL.
• Instalowanie MySQL z plików binarnych i ród³owych
• Zarz¹dzanie systemem przywilejów i kontami u¿ytkowników
• Zapobieganie awariom i usuwanie ich skutków
• Replikacja danych
• Optymalizowanie wydajnoci bazy
• Klient MySQL i narzêdzia u¿ytkowe
• Mechanizmy sk³adowania ISAM i InnoDB
• Usuwanie przyczyn b³êdów
Dziêki wiadomociom zawartym w tej ksi¹¿ce optymalnie skonfigurujesz MySQL oraz
zapewnisz jego maksymaln¹ wydajnoæ i najwy¿szy poziom bezpieczeñstwa danych.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
91225541.001.png 91225541.002.png 91225541.003.png 91225541.004.png
Spis treści
Rozdział 1. Informacje ogólne ............................................................................ 11
1.1. Informacje o niniejszym przewodniku ................................................................... 11
1.1.1. Konwencje używane w podręczniku ........................................................ 12
1.2. Przegląd systemu zarządzania bazami danych MySQL ......................................... 14
1.2.1. Historia MySQL....................................................................................... 15
1.2.2. Najważniejsze cechy MySQL .................................................................. 16
1.2.3. Stabilność MySQL ................................................................................... 19
1.2.4. Jak duże mogą być tabele MySQL? ......................................................... 20
1.2.5. Zgodność z rokiem 2000 .......................................................................... 21
1.3. Informacje o firmie MySQL AB ............................................................................ 23
1.3.1. Model biznesowy i usługi MySQL AB .................................................... 24
1.3.2. Informacje kontaktowe............................................................................. 26
1.4. Pomoc techniczna i licencjonowanie MySQL........................................................ 28
1.4.1. Pomoc techniczna oferowana przez MySQL AB ..................................... 28
1.4.2. Prawa autorskie i licencje MySQL........................................................... 29
1.4.3. Licencje MySQL...................................................................................... 29
1.4.4. Logo i znaki towarowe firmy MySQL AB............................................... 32
1.5. Plan rozwoju MySQL ............................................................................................ 34
1.5.1. MySQL 4.0 w pigułce .............................................................................. 35
1.5.2. MySQL 4.1 w pigułce .............................................................................. 37
1.5.3. MySQL 5.0: następna wersja rozwojowa................................................. 39
1.6. MySQL i przyszłość............................................................................................... 39
1.6.1. Nowe cechy planowane w wersji 4.1 ....................................................... 39
1.6.2. Nowe cechy planowane w wersji 5.0 ....................................................... 39
1.6.3. Nowe cechy planowane w wersji 5.1 ....................................................... 40
1.6.4. Funkcje planowane na najbliższą przyszłość ........................................... 41
1.6.5. Funkcje planowane na dalszą przyszłość................................................. 44
1.6.6. Nowe cechy, których nie planujemy ........................................................ 46
1.7. Źródła informacji o MySQL .................................................................................. 46
1.7.1. Listy dyskusyjne MySQL ........................................................................ 46
1.7.2. Pomoc społeczności użytkowników MySQL na IRC
(ang. Internet Relay Chat) ........................................................................ 55
1.8. MySQL — zgodność ze standardami..................................................................... 55
1.8.1. Standardy obsługiwane przez MySQL ..................................................... 56
1.8.2. Wybór trybu SQL..................................................................................... 56
1.8.3. Uruchamianie MySQL w trybie ANSI..................................................... 57
1.8.4. Rozszerzenia standardu SQL w serwerze MySQL................................... 57
1.8.5. Rozbieżności między MySQL a standardem SQL ................................... 60
1.8.6. Jak MySQL obsługuje ograniczenia?....................................................... 67
1.8.7. Znane błędy i wady projektowe MySQL ................................................. 70
4
Spis treści
Rozdział 2. Instalowanie MySQL ........................................................................ 77
2.1. Ogólne kwestie instalacyjne................................................................................... 78
2.1.1. Systemy operacyjne obsługiwane przez MySQL ..................................... 78
2.1.2. Wybór dystrybucji MySQL...................................................................... 81
2.1.3. Jak zdobyć MySQL? ................................................................................ 92
2.1.4. Weryfikowanie integralności pakietu za pomocą sum kontrolnych MD5
albo narzędzia GnuPG.............................................................................. 92
2.1.5. Układ katalogów instalacyjnych .............................................................. 96
2.2. Standardowa instalacja MySQL z dystrybucji binarnej ......................................... 97
2.2.1. Instalowanie MySQL w Windows ........................................................... 98
2.2.2. Instalowanie MySQL w systemie Linux ................................................ 110
2.2.3. Instalowanie MySQL w systemie Mac OS X......................................... 113
2.2.4. Instalowanie MySQL w systemie NetWare ........................................... 116
2.2.5. Instalowanie MySQL w innych systemach typu Unix ........................... 118
2.3. Instalacja MySQL z dystrybucji źródłowej .......................................................... 121
2.3.1. Instalacja dystrybucji źródłowej............................................................. 123
2.3.2. Typowe opcje skryptu configure............................................................ 126
2.3.3. Instalowanie MySQL z drzewa kodu źródłowego.................................. 129
2.3.4. Rozwiązywanie problemów występujących
podczas kompilowania MySQL .................................................................. 132
2.3.5. Uwagi dotyczące biblioteki MIT-pthreads ............................................. 136
2.3.6. Instalowanie MySQL z kodu źródłowego w Windows .......................... 137
2.3.7. Kompilowanie klientów MySQL w Windows ....................................... 141
2.4. Konfiguracja i testy poinstalacyjne ...................................................................... 142
2.4.1. Procedury poinstalacyjne w Windows ................................................... 142
2.4.2. Procedury poinstalacyjne w systemie Unix............................................ 143
2.4.3. Automatyczne uruchamianie i zatrzymywanie serwera MySQL ........... 150
2.4.4. Uruchamianie serwera MySQL i rozwiązywanie problemów................ 152
2.4.5. Zabezpieczanie początkowych kont MySQL ......................................... 156
2.5. Instalowanie nowszej lub starszej wersji MySQL................................................ 159
2.5.1. Aktualizowanie wersji 4.1 do 5.0 ........................................................... 161
2.5.2. Aktualizowanie wersji 4.0 do 4.1 ........................................................... 161
2.5.3. Aktualizowanie wersji 3.23 do 4.0 ......................................................... 166
2.5.4. Aktualizowanie wersji 3.22 do 3.23 ....................................................... 171
2.5.5. Aktualizowanie wersji 3.21 do 3.22 ....................................................... 173
2.5.6. Aktualizowanie wersji 3.20 do 3.21 ....................................................... 173
2.5.7. Aktualizowanie MySQL w Windows .................................................... 174
2.5.8. Aktualizowanie tabel przywilejów ......................................................... 175
2.5.9. Kopiowanie baz danych MySQL do innego komputera......................... 176
2.6. Uwagi dotyczące poszczególnych systemów operacyjnych................................. 177
2.6.1. Uwagi dotyczące systemu Linux............................................................ 177
2.6.2. Uwagi dotyczące systemu Mac OS X .................................................... 186
2.6.3. Uwagi dotyczące systemu Solaris .......................................................... 187
2.6.4. Uwagi dotyczące systemu BSD ............................................................. 192
2.6.5. Uwagi dotyczące innych systemów typu Unix....................................... 196
2.6.6. Uwagi dotyczące systemu OS/2 ............................................................. 206
2.6.7. Uwagi dotyczące systemu BeOS............................................................ 207
2.7. Uwagi dotyczące instalacji języka Perl ................................................................ 207
2.7.1. Instalowanie języka Perl w systemie Unix ............................................. 208
2.7.2. Instalowanie oprogramowania ActiveState Perl w Windows................. 209
2.7.3. Problemy z interfejsem DBI/DBD języka Perl....................................... 210
Spis treści
5
Rozdział 3. Korzystanie z programów MySQL .................................................... 213
3.1. Przegląd programów MySQL .............................................................................. 213
3.2. Uruchamianie programów MySQL...................................................................... 214
3.3. Określanie opcji programów ................................................................................ 215
3.3.1. Używanie opcji w wierszu polecenia ..................................................... 216
3.3.2. Używanie plików opcji .......................................................................... 217
3.3.3. Określanie opcji za pomocą zmiennych środowiskowych ..................... 221
3.3.4. Ustawianie zmiennych programu za pomocą opcji ................................ 222
Rozdział 4. Administrowanie bazą danych ........................................................ 225
4.1. Serwer MySQL i skrypty startowe....................................................................... 225
4.1.1. Skrypty i programy użytkowe działające po stronie serwera ................. 225
4.1.2. Rozszerzony serwer MySQL mysqld-max............................................. 227
4.1.3. Skrypt startowy mysqld_safe ................................................................. 229
4.1.4. Skrypt startowy mysql.server ................................................................. 233
4.1.5. Program mysqld_multi do zarządzania wieloma serwerami MySQL .... 233
4.2. Konfigurowanie serwera MySQL ........................................................................ 237
4.2.1. Opcje wiersza polecenia mysqld ............................................................ 238
4.2.2. Tryb SQL serwera .................................................................................. 249
4.2.3. Zmienne systemowe serwera ................................................................. 251
4.2.4. Zmienne stanu serwera........................................................................... 281
4.3. Ogólne kwestie bezpieczeństwa........................................................................... 288
4.3.1. Ogólne wskazówki dotyczące bezpieczeństwa ...................................... 288
4.3.2. Zabezpieczanie MySQL przed napastnikami ......................................... 291
4.3.3. Opcje startowe mysqld związane z bezpieczeństwem............................ 293
4.3.4. Kwestie bezpieczeństwa związane z instrukcją LOAD DATA LOCAL .....295
4.4. System przywilejów dostępu MySQL.................................................................. 296
4.4.1. Funkcje systemu przywilejów ................................................................ 296
4.4.2. Jak działa system przywilejów? ............................................................. 296
4.4.3. Przywileje obsługiwane przez MySQL .................................................. 300
4.4.4. Łączenie się z serwerem MySQL........................................................... 304
4.4.5. Kontrola dostępu, etap 1.: weryfikacja połączenia ................................. 305
4.4.6. Kontrola dostępu, etap 2.: weryfikacja żądań......................................... 309
4.4.7. Kiedy uwzględniane są zmiany przywilejów? ....................................... 312
4.4.8. Przyczyny błędów Access denied .......................................................... 313
4.4.9. Szyfrowanie haseł w MySQL 4.1........................................................... 318
4.5. Zarządzanie kontami użytkowników MySQL...................................................... 324
4.5.1. Nazwy użytkowników i hasła MySQL................................................... 324
4.5.2. Dodawanie nowych kont użytkownika MySQL..................................... 326
4.5.3. Usuwanie kont użytkownika MySQL .................................................... 329
4.5.4. Ograniczanie zasobów używanych przez konto ..................................... 330
4.5.5. Przypisywanie haseł kontom .................................................................. 331
4.5.6. Ochrona hasła......................................................................................... 333
4.5.7. Używanie połączeń zabezpieczonych .................................................... 334
4.6. Zapobieganie awariom i usuwanie ich skutków................................................... 341
4.6.1. Kopie zapasowe bazy danych ................................................................ 341
4.6.2. Utrzymanie tabel i usuwanie skutków awarii......................................... 343
4.6.3. Tworzenie harmonogramu utrzymania tabel .......................................... 357
4.6.4. Uzyskiwanie informacji o tabeli............................................................. 358
4.7. Lokalizacja i zastosowania międzynarodowe MySQL......................................... 365
4.7.1. Zestaw znaków używany do zapisu i sortowania danych....................... 365
4.7.2. Ustawianie języka komunikatów o błędach ........................................... 366
4.7.3. Dodawanie nowego zestawu znaków ..................................................... 367
4.7.4. Tablice definicji znaków ........................................................................ 369
6
Spis treści
4.7.5. Obsługa sortowania łańcuchów.............................................................. 369
4.7.6. Obsługa znaków wielobajtowych........................................................... 370
4.7.7. Problemy z zestawami znaków .............................................................. 370
4.8. Pliki dziennika MySQL ....................................................................................... 370
4.8.1. Dziennik błędów .................................................................................... 371
4.8.2. Ogólny dziennik zapytań........................................................................ 372
4.8.3. Dziennik aktualizacji.............................................................................. 372
4.8.4. Dziennik binarny.................................................................................... 373
4.8.5. Dziennik powolnych zapytań................................................................. 377
4.8.6. Utrzymanie plików dziennika ................................................................ 377
4.9. Uruchamianie wielu serwerów MySQL w jednym komputerze........................... 378
4.9.1. Uruchamianie wielu serwerów w Windows ........................................... 380
4.9.2. Uruchamianie wielu serwerów w systemie Unix ................................... 384
4.9.3. Używanie programów klienta w środowisku z wieloma serwerami....... 385
4.10. Pamięć podręczna zapytań MySQL ..................................................................... 386
4.10.1. Sposób działania pamięci podręcznej zapytań....................................... 387
4.10.2. Opcje instrukcji SELECT związane z pamięcią podręczną zapytań ...... 389
4.10.3. Konfiguracja pamięci podręcznej zapytań ............................................. 389
4.10.4. Stan i utrzymanie pamięci podręcznej zapytań ...................................... 390
Rozdział 5. Replikacja w MySQL ...................................................................... 393
5.1. Wstęp do replikacji .............................................................................................. 393
5.2. Ogólny opis implementacji replikacji .................................................................. 394
5.3. Szczegóły implementacji replikacji...................................................................... 395
5.3.1. Stany wątku replikacji serwera nadrzędnego ......................................... 397
5.3.2. Stany wątku wejścia-wyjścia serwera podrzędnego............................... 398
5.3.3. Stany wątku SQL serwera podrzędnego................................................. 399
5.3.4. Pliki stanu i transmisyjne pliki replikacji ............................................... 399
5.4. Sterowanie replikacją........................................................................................... 402
5.5. Kompatybilność replikacji pomiędzy różnymi wersjami MySQL ....................... 407
5.6. Konfiguracja replikacji z aktualizacją wersji serwera .......................................... 407
5.6.1. Replikacja z aktualizacją do wersji 4.0 lub 4.1 ...................................... 408
5.6.2. Replikacja z aktualizacją do wersji 5.0 .................................................. 408
5.7. Replikacja — możliwości i problemy .................................................................. 409
5.8. Opcje startowe replikacji...................................................................................... 413
5.9. Replikacja — najczęściej zadawane pytania ........................................................ 424
5.10. Replikacja — rozwiązywanie problemów............................................................ 431
5.11. Raportowanie błędów replikacji........................................................................... 432
Rozdział 6. Optymalizacja MySQL..................................................................... 435
6.1. Wstęp do optymalizacji........................................................................................ 435
6.1.1. Ograniczenia projektowe MySQL i kompromisy................................... 436
6.1.2. Projektowanie przenośnej aplikacji........................................................ 436
6.1.3. Do czego wykorzystywaliśmy MySQL.................................................. 438
6.1.4. Pakiet testowania wydajności MySQL................................................... 439
6.1.5. Wykorzystanie własnych testów wydajności ......................................... 440
6.2. Optymalizowanie instrukcji SELECT oraz innych zapytań................................. 441
6.2.1. Składnia polecenia EXPLAIN. Pobieranie informacji
o instrukcji SELECT ................................................................................... 441
6.2.2. Szacowanie wydajności zapytania ......................................................... 450
6.2.3. Szybkość wykonania zapytań SELECT ................................................. 451
6.2.4. Jak MySQL optymalizuje klauzule WHERE ......................................... 452
6.2.5. Jak MySQL optymalizuje klauzule OR.................................................. 454
6.2.6. Jak MySQL optymalizuje IS NULL....................................................... 454
6.2.7. Jak MySQL optymalizuje DISTINCT.................................................... 455
Zgłoś jeśli naruszono regulamin