[Podstawy] Podstawy związane z bazą danych MySQL dla OpenTibii*
Witam. Jako, że dla początkującego administratora OpenTibii baza danych to rzecz, która jest czarną magią, postanowiłem napisać ten poradnik. Traktuje on o tym jaki serwer WWW wybrać, jak poprawnie zaimportować plik ze 'zrzutem' bazy danych MySQL, oraz co powinno się o niej wiedzieć. Sam byłem głupi i źle ludziom doradzałem - jednak doświadczenie wyniesione z pracy we frameworku POT i godziny siedzenia na #otserv'owym IRCu pozwoliły mi zmądrzeć.
Poradnik podzieliłem na rozdziały. Punkt 1., 2. oraz 3. polecam przeczytać nawet administratorom, którzy twierdzą, że ich baza danych została skonfigurowana poprawnie ;).
- Jaką bazę wybrać?
- Dane techniczne bazy OpenTibia
- Jaki serwer WWW wybrać?
- Import bazy z pliku *.sql
- Jaką bazę wybrać?
Jak dobrze wiecie (lub nie), SVN OpenTibii umożliwia nam korzystanie z następujących silników bazodanowych:
- PostgreSQL
- MySQL
- SQLite
- ODBC
Pokrótce postaram się omówić te typy baz:
- PostgreSQL (zwane także PGSQL albo PG) - baza danych, której kod jest w 100% open source. Powstał jako alternatywa dla częściowo zamkniętego (Enterprise Edition, który posiada kilka mało przydatnych dla OpenTibii funkcji oraz wsparcie techniczne) MySQL. Szybka, posiadająca obsługę triggerów - bardzo dobra baza danych do stawiania OpenTibii. Problemem jednak jest to, że rzadko kiedy obsługiwana przez dystrybucje OpenTibii, takie jak DeadTouch, czy TheForgottenServer - bo o ile skompilowanie OTSa z obsługą PG na Linuksie sprowadza się tylko do wybrania odpowiedniej opcji podczas konfiguracji źródeł i zainstalowaniu biblioteki i plików nagłówkowych, o tyle na Windows kompilacja takiego OTSa sprawia problemy. Pomimo spełnienia wszystkich technicznych wymagań, nie polecam tej bazy jako bazy do stawiania OTSa. Powód - mało kto ma tą bazę, pomoc techniczna będzie więc bardzo trudna do znalezienia.
- MySQL - baza danych najczęściej wykorzystywana przez administratorów OpenTibia. Tym bardziej dziwi więc fakt, że używana źle i bez jakiejkolwiek wiedzy potrzebnej do 'pielęgnacji'. Polecam tą bazę danych - powszechna, szybka i posiadająca duże wsparcie techniczne.
- SQLite - SQLite to dość specyficzna baza danych - polega na jednym pliku, do którego każdy ma dostęp - brak kontroli użytkowników, haseł itd. Jest to również najbardziej 'idiot friendly' baza - polecam, jeżeli wiesz co robisz na komputerze i umiesz zabezpieczyć swoje pliki przed nieautoryzowanym dostępem.
- ODBC - w zasadzie nigdy nie widziałem, aby ta baza była używana - egzotyczny silnik, zdecydowanie nie polecam.
- Dane techniczne bazy OpenTibia
Baza OpenTibii korzysta z tzw. triggerów (wyzwalaczy) - jest to konieczny element bazy danych - NIE POWINNO SIĘ NIGDY, PRZENIGDY IMPORTOWAĆ BAZY DANYCH BEZ NICH!. Często wyzwalacze porównywalne są do 'kleju', który skleja różne partie bazy danych OpenTibia - podpisuje się pod tym. Dobrze stworzona baza działa świetnie, nie psuje się i jest kompatybilna z POT (PHP OpenTibia Toolkit), który jest zalecanym frameworkiem do pracy nad AAC dla różnych OTSów. Baza danych OpenTibii korzysta z metody porównywania znaków latin_swedish_ci1 (o ile dobrze pamiętam) - tego również nie powinniśmy zmieniać, jeżeli chcemy uchronić się przed uszkodzeniem danych wklepywanych ZDALNIE do naszej bazy przez OTS. No i rzecz najważniejsza i najczęściej partolona - OpenTibia korzysta z mechanizmu składowania InnoDB, a nie MyISAM - XAMPP, WebServ jak i wiele innych 'składaków' ma ten mechanizm domyślnie wyłączony i nie nadaje się do trzymania bazy danych OpenTibii. Jak zauważyłem, bardzo trudne jest znalezienie składaka dla Windows, który pozwalałby na posiadanie tych wszystkich funkcji na raz - przejdźmy więc do instalacji dobrego pakietu oprogramowania dla Windows.
- Jaki serwer WWW wybrać?
- Windows
Jak już wcześniej mówiłem, bardzo trudno jest znaleźć składaka dla OpenTibii, który spełniałby od razu wszelkie warunki stawiane przez OTSa - o WebServie nie wspomnę, bo to pomyłka programistyczna, XAMPP ma domyślnie wyłączony mechanizm InnoDB i PDO, co jest nie do przyjęcia, Krasnal podobnie - najlepszym wyjściem byłoby oczywiście postawienie osobno Apache i MySQL - jednak gdybyś potrafił to zrobić, na pewno nie czytałbyś tego poradnika. Na szczęście na dobry trop sprowadził mnie Kofel, którego serdecznie pozdrawiam. Tym dobrym tropem jest WampServer - http://www.wampserver.com/en/index.php. Ma on wszystkie możliwe opcje, a jego instalacja jest banalna. Pamiętaj, aby po poprawnej instalacji zmienić hasła do bazy danych - możesz to zrobić w phpMyAdmin, dostępnym pod adresem http://localhost/phpmyadmin. W celu łatwiejszej pracy w dalszej części poradnika, zainstalujcie wampa w folderze c:/wamp.
- Linux
Tutaj polecam skroić sobie serwer według potrzeb - wystarczy zwykły lighttpd (nie potrzebujemy ogromnej kobyły, jaką jest Apache) oraz MySQL oraz PHP pracujące w trybie CGI. Aby zmusić PHP do działania z lighttpd, przeczytaj to.
- Import bazy z pliku *.sql
To też wymaga pewnej wiedzy - wielu niedouczonych administratorów miast importować dobrze bazę MySQL / SQLite, posługują się phpMyAdminem, który w tej roli zupełnie sobie nie radzi. Dlatego też skorzystamy z klienta MySQL dołączonego wraz z naszą dystrybucją MySQLa. On jest w stanie zaimportować to poprawnie, a co najważniejsze - szybko i z triggerami.
- Windows
Otwieramy Windowsowy wiersz poleceń - najszybciej zrobimy to, używając skrótu klawiaturowego Windows + R (Uruchom) i wpisując "cmd".
Pojawi nam się czarne okno wiersza poleceń:
http://i34.tinypic.com/219oylv.png
Wpisujemy następujące komendy:
Kod:
cd ../../../wamp/bin/mysql/mysql5.0.51b/bin
mysqladmin -u root -p create opentibia
mysql -u root -p opentibia < TUTAJ ŚCIEŻKA DO PLIKU SQL, na przykład - C:/OTS.sql
Po tych komendach i wpisaniu 2 razy hasła (jeżeli Cię o nie zapyta), baza danych zostanie zainstalowana. Będzie nazywała się opentibia.
- Linux
Na linuksie jest jeszcze prościej, z tego względu, że programy te znajdują się w PATH:
Kod:
mysqladmin -u root -p create opentibia
mysql -u root -p opentibia < TUTAJ ŚCIEŻKA DO PLIKU SQL, na przykład - /home/killavus/OTS.sql
To wszystko. Możecie cieszyć się bazą danych dla OpenTibii!
Zakończenie
Sądzę, że tym poradnikiem przybliżyłem tworzenie bazy danych dla OTSa początkującym administratorom. Mam nadzieję, że częściej będę widział dobrze stworzone bazy danych.
Pozdrawiam
Killavus