Reklama
Strona 1 z 2 12 OstatniaOstatnia
Pokazuje wyniki od 1 do 15 z 25

Temat: [Podstawy] Podstawy związane z bazą danych MySQL dla OpenTibii*

  1. #1
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    31
    Posty
    915
    Siła reputacji
    19

    Domyślny [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 ;).

    1. Jaką bazę wybrać?
    2. Dane techniczne bazy OpenTibia
    3. Jaki serwer WWW wybrać?
      • Windows
      • Linux
    4. Import bazy z pliku *.sql
      • Windows
      • Linux


    1. 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.

    2. 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.
    3. 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.

    4. 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ń:


        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
    Ostatnio zmieniony przez Killavus : 22-02-2009, 22:14

  2. #2
    Lemef

    Domyślny

    Jak zawsze priorytetem Killavusa było wyszkolenie użytkowników TORG'a. Wszystko ładnie opisane jak zawsze. Większość użytkowników i tak nie będzie widziała o co chodzi. Poradnik jest przejrzysty. Znalazłem tylko jeden błąd:

    [b]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.
    Chodzi mi o te "b" w kwadratowym nawiasie, brakuje zamknięcia.

    @Edycja

    Link z poradnika nie działa. Tutaj jest poprawiony: http://www.wampserver.com/en/index.php.

    Pozdrawiam,
    Lemef
    Ostatnio zmieniony przez Lemef : 16-07-2008, 18:56

  3. Reklama
  4. #3
    Undegrund

    Domyślny

    Poradnik przejrzysty, a co do tego błędu to nie wielki.

    Pozdrawiam Undegrund.

  5. #4
    Gillu

    Domyślny

    Pytanko ode mnie.
    Co jest szybsze - SQLite czy MySQL?
    Ostatnio jakiś frajer zhakował mi PMA w XAMPPie i usunął wszystkich użytkowników. Musiałem przerzucić się na SQLite, a tam jakoś nie wygodnie mi :/
    Spróbuje z tym WAMPPem, brzmi fajnie :P

  6. #5
    Avatar Ziker
    Data rejestracji
    2005
    Wiek
    33
    Posty
    106
    Siła reputacji
    19

    Domyślny

    @up
    MySQL jest szybszy i mozna edytowac podczas pracy serwera ;] SQLite jest wczytywany do pamieci i jego edycja podczas pracy serwera jest niemozliwa (nie mozna sie podlaczyc do bazy). Pozatym jesli ktos Ci hacknal phpmyadmin to po co wogole go masz...? przeciez to jest gowno ;] no i ustawia sie hasla, wtedy raczej nikt sie nie wlamuje. Jesli bardzo Ci zalezy na phpmyadminie to mozesz tez ustawic, by na uzytkownikow bazy mozna bylo sie logowac jedynie z localhosta ;]

    @down
    hmm :p jednak jesli chodzi o dostep i prace na bazach danych to MySQL jest wygodniejszy i sprawniejszy :D Dlatego uwazam, ze jest szybszy :p Moze jesli chodzi o samo wykonanie polecen i wczytanie jest wolniejszy (bo wkoncu wszystkie[?] operacje dzieja sie na danych na dysku twardym :p czyli jest potrzebny czas na komunikacje miedzy prockiem i dyskiem), ale tego chyba nie idzie zauwazyc. Aha, co do baz ODBC to sa tworzone przewaznie w MS Access, ale ja nie polecam tego typu baz danych rowniez, jesli jednak ktos bylby uparty (w co watpie) to:
    Jak ktos chociaz troche sie zna :p to zczai :D
    Ostatnio zmieniony przez Ziker : 16-07-2008, 20:19

  7. #6
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    31
    Posty
    915
    Siła reputacji
    19

    Domyślny

    Cytuj Ziker napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    #up
    MySQL jest szybszy
    No, jednak nieco wolniejszy i bardziej zasobozerny. Jezeli chodzi o roznice w szybkosci - jest ona niezauwazalna. Ale nadrabia to elastycznoscia.

    Pozdrawiam
    Killavus

  8. #7
    Avatar Gniew_Mroku
    Data rejestracji
    2005
    Posty
    92
    Siła reputacji
    19

    Domyślny

    SQLite, z tego co pamiętam też można edytować podczas pracy serwera - w innym wypadku byłoby to raczej sprzeczne z ideą bazy danych.

    Serwer MySql'a tak naprawdę można porównać do stawiania otsa na linuksie z włączonym menadżerem okien zamiast z konsoli - czyste marnowanie zasobów i CPU. Ale o ile w wypadku MySql'a faktycznie przy samym OTS'ie, zwłaszcza jakimś malym będzie tylko spowalniał sam serwer to przy projektach na kilkaset graczy z rozbudowaną stroną okaże się, że jest on znacznie bardziej wydajniejszy.

    Do poradnika proponowałbym dodać jakiś polecany interfejs do SQLite, a może także jakąś alternatywę dla phpMyAdmina, który tak naprawdę jest (co najmniej) kiepskim rozwiązaniem dla osób stawiających serwer na localhoście.
    Ostatnio zmieniony przez Gniew_Mroku : 16-07-2008, 21:48

  9. #8
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    31
    Posty
    915
    Siła reputacji
    19

    Domyślny

    Cytuj Gniew_Mroku napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    SQLite, z tego co pamiętam też można edytować podczas pracy serwera - w innym wypadku byłoby to raczej sprzeczne z ideą bazy danych.

    Serwer MySql'a tak naprawdę można porównać do stawiania otsa na linuksie z włączonym menadżerem okien zamiast z konsoli - czyste marnowanie zasobów i CPU. Ale o ile w wypadku MySql'a faktycznie przy samym OTS'ie, zwłaszcza jakimś malym będzie tylko spowalniał sam serwer to przy projektach na kilkaset graczy z rozbudowaną stroną okaże się, że jest on znacznie bardziej wydajniejszy.

    Do poradnika proponowałbym dodać jakiś polecany interfejs do SQLite, a może także jakąś alternatywę dla phpMyAdmina, który tak naprawdę jest (co najmniej) kiepskim rozwiązaniem dla osób stawiających serwer na localhoście.
    Gniew_Mroku, to czysta prawda, jednakze interfejsy sieciowe takie jak phpMyAdmin znacznie ulatwiaja laikowi prace. Sam zazwyczaj korzystam z konsolowego mysql clienta, bo go po prostu mam pod reka, jednakze korzystanie z klienta w trybie CLI moze byc katorga dla nowego administratora. SQLite jaki jest, kazdy widzi - prosty jak konstrukcja cepa. A wystarczy chmod zly i juz sie wszystko jebie - dlatego wole polecac ludziom MySQL. Na wspolczesnych komputerach baza MySQL to nie jest az taki wydatek zasobow, aby z niej korzystac. Zwlaszcza, ze posiada ona mnostwo funkcji pozwalajacych zminimalizowac zasobozernosc...

    Co do phpMyAdmin - mozna znalezc cos lepszego. Tylko po co, skoro to akurat kazdy WAMP Windowsowy ma pod reka?

    Pozdrawiam
    Killavus
    Ostatnio zmieniony przez Killavus : 17-07-2008, 00:31

  10. #9
    kofel

    Domyślny

    Killavus, poradnik głupi!

    Kod:
    cd ../../../wamp/bin/mysql/mysql5.0.51b/bin
    WTF?
    Mniemam że użytkownik w chwili tej jest w drugim podkatalogu wg. dysku C a ty cofasz aż o trzy ?

    FIX:
    Kod:
    cd ../../wamp/bin/mysql/mysql5.0.51b/bin

  11. #10
    Avatar Gniew_Mroku
    Data rejestracji
    2005
    Posty
    92
    Siła reputacji
    19

    Domyślny

    Kofel, skończy się to tym samym, więc nie ma sensu zmieniać. No chyba, że na coś, co jest bardziej uniwersalne:
    Kod:
    chdir c:\dalsza_ścieżka\
    PS. Kto instaluje coś w c:\ zamiast w %programfiles%?

  12. #11
    kofel

    Domyślny

    Jest sens. Na unixach skończy się to błędem, na windowsie nie, ale to nie zmienia faktu że Killavus napisał to z błędem.

  13. #12
    Avatar Killavus
    Data rejestracji
    2005
    Położenie
    Wrocław
    Wiek
    31
    Posty
    915
    Siła reputacji
    19

    Domyślny

    Cytuj kofel napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Jest sens. Na unixach skończy się to błędem, na windowsie nie, ale to nie zmienia faktu że Killavus napisał to z błędem.
    Przeciez nie powinno Cie to obchodzic, skoro masz wersje tego samego punktu na Uniksowe (Linux) systemy. Boze, co za czepialstwo...

    Pozdrawiam
    Killavus

  14. #13
    Zalar Lobal

    Domyślny

    Hmm mam pytanie czym sie rozni innodb od myisam bo z tego co wiem wiecej mi ten innodb przy backupu database sprawial klopotow niz myisam w myisam copy wklej a w innodb nadal nie wiem jak zbackupowac database musialem przeksztalcic innodb na myisam by zrobic backupp... czy innodb jest lepsze czy jak ? szybciej chodzi ?

  15. #14
    GM Bonzo

    Domyślny

    Witam!
    Jestem bardzo bardzo początkującym pogramistą i mam pewien problem.

    W tej konsoli(cmd) wpisałem już "mysqladmin -u root -p create opentibia" i pojawiło mi się "enter password:"
    więc spróbowałem to drugie wpisać i też pojawiło się enter password a ja nie wiem jaki jest password :( I albo jestem ślepy albo nie wiem gdzie tego szukać. Mógłby ktoś mi pomóc?
    Czy to może mieć związek że ja mam folder 'mysql5.1.30' ??

    @Edit - poprostu nacisnąłem enter :P
    oki, działa ale...
    jak podaje ścieżkę dostępu "... < C:\ots\ots\dt.sqlite to mi nie czyta ;s
    Ostatnio zmieniony przez GM Bonzo : 17-01-2009, 12:58

  16. #15
    6-2-6

    Domyślny

    Cytuj GM Bonzo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Witam!
    Jestem bardzo bardzo początkującym pogramistą
    WoW Baaaardzo początkujący...
    Cytuj GM Bonzo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    i mam pewien problem.

    W tej konsoli(cmd) wpisałem już "mysqladmin -u root -p create opentibia" i pojawiło mi się "enter password:"
    więc spróbowałem to drugie wpisać i też pojawiło się enter password a ja nie wiem jaki jest password :( I albo jestem ślepy albo nie wiem gdzie tego szukać. Mógłby ktoś mi pomóc?
    Czy to może mieć związek że ja mam folder 'mysql5.1.30' ??
    Wpisałeś hasło jakiego używasz do phpmyadmin?
    Cytuj GM Bonzo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    #Edit - poprostu nacisnąłem enter :P
    oki, działa ale...
    jak podaje ścieżkę dostępu "... < C:\ots\ots\dt.sqlite to mi nie czyta ;s
    może pobaw się w mySql?

    Ps. Mój problem:
    Jak włączyć te funkcje obsługi triggerów w pma np. na xampp'ie??
    (napisałeś, że funkcja jest wyłączona, więc pewnie można ją włączyć)

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Baza mysql - sprawdzenie poprawnosci.
    Przez Criss26 w dziale Programowanie
    Odpowiedzi: 3
    Ostatni post: 13-05-2015, 22:16
  2. Odpowiedzi: 1
    Ostatni post: 08-05-2014, 00:33
  3. [Mysql] Duża baza danych-jak wydajnie zorganizować
    Przez Sir Juncan w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 3
    Ostatni post: 31-01-2012, 01:31
  4. [Podstawy] Tworzenie bazy danych MySQL oraz obsługa silnika TFS*
    Przez Midas w dziale Artykuły developerskie
    Odpowiedzi: 52
    Ostatni post: 15-10-2011, 12:39

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •