Skocz do zawartości

hemi

Użytkownicy
  • Zawartość

    81
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    6

Posty napisane przez hemi


  1. Wyłącz query_cache, performance_schema (o ile nie uzywasz, a pewnie nie uzywasz), zmniejsz key_buffer_size (skoro nie korzystasz z mysiam to po co az 768M na klucze myisam'a...).

    Do tego włącz slow_query_log, ustaw long_query_time na 0 sek (aby logowalo Ci wszystkie zapytania bez wzgledu na to ile sie wykonuja), zbierz dane z paru minut, potem long_query_time na 1 i np za pomocą narzędzia pt-query-digest (z pakietu percona-toolkit) przemiel slow log i zobacz które zapytania najbardziej Ci "zamulają". Tutaj bym głównie obstawiał źle napisane zapytania sql i/lub niepoprawne (lub w ogole nie ustawione) indeksy na bazie.


  2. Po instalacji mysql, najczesciej paczek mysql-server oraz mysql (klient CLI) warto zacząć od zabezpieczenia konta root, które bezposrednio po instalacji nie posiada nałożonego hasła. Można to zrobić ręcznie poprzez mysql clienta, w PMA (phpMyAdmin) lub korzystając z gotowego skryptu mysql_secure_installation który jest dostępny przy standardowej instalacji mysql.

     

    Sqlite i mysql to są 2 osobne systemy baz danych, nie związane ze sobą (poza tym, że obydwa korzystają z języka SQL).

     

    Najpierw wymyśl sobie jakiś prosty projekt (formularz z ankietą jest jednym z przykładów), cokolwiek, na przykład własnie ankietę lub prosty system newsów. Napisz do tego kod, zaprojektuj tabelki w bazie danych, naucz sie korzystać w kodzie z funkcji łaczących się z bazą (mysqli, pdo w przypadku php). Jak uda Ci się to zrobić to spojrz na projekt od strony zwyklego, "szarego" internauty i spróbuj coś popsuć korzystając tylko z formularzy, które sam wczesniej napisałeś. Jak Ci sie uda popsuć - szukaj przyczyny dlaczego udało Ci się dodać np nie takie dane jak zakładałeś w projekcie. I tak do momentu aż uzyskasz okreslone przez Ciebie cele. Potem wyrzuć to i napisz coś podobnego od podstaw. Za każdym podejsciem do tematu całośc będzie wyglądać coraz lepiej. Co prawda pytałeś głównie o mysql ale wymienione powyzej kroki pomogą także nauczyć się poprawnego pisania kodu oraz projektowania wlasnie tabel w bazie. Tyy danych są bardzo wazne przy projektowaniu tabel ze względu na to, że rózne typy danych w róznym stopniu ułatwiają filtracje i obróbkę danych na poziomie bazy.


  3. Zadałeś dość ogólne pytanie...

     

    Do czego wykorzystać bazę danych? Załóżmy, że chcesz zrobić prostą aplikację np php z formularzem, na przykład jakąś ankietę. Zbierasz jakieś dane, dajmy na to adres email + odpowiedź na pytanie w ankiecie. Zbierane dane mozesz zapisywać do prostych plików txt - ok, można, tylko po co? Ani tego łatwo nie przeszukasz, ani w prosty (i wydajny) sposób nie wprowadzisz np ograniczenia 1 email - 1 odpowiedź, ponadto aby dodawać nowe pozycje do ankiety za każdym razem będziesz musiał edytować kod formularza dodając kolejne pola wyboru.

     

    Z bazą danych jest inaczej. Tworzysz sobie tabele, dla podanego wyżej przykładu robisz przykładowo 2 tabele. Jedna zawiera pozycje ankiety (id pozycji, pytanie), druga zbiera poszczególne odpowiedzi (email, id pozycji z poprzedniej tabeli). Chcesz teraz łatwo sprawdzić ile dana pozycja z ankiety miala odpowiedzi - robisz proste zapytanie do bazy danych, przykładowo:

    SELECT id_pozycji, count(id_pozycji) FROM tabelka_z_mailami GROUP BY id_pozycji;

    I już masz policzone ile odpowiedzi było na poszczególne pozycje z ankiety. Równie dobrze możesz założyć klucz unikalny na pole email co spowoduje, że nie wypełnisz drugi raz ankiety podając już wcześniej uzyty email - baza danych "sama z siebie" nie zezwoli na taką operację.

     

    To jest oczywiście jakiś naprostszy, banalny przykład. Teraz wyobraź sobie, że forum takie jak webhostingtalk nie korzysta z bazy danych a np prostych plików tekstowych. Da się? Da, tylko po co marnować moc obliczeniową serwera na przeszukiwanie plików txt, sortowanie i fitrowanie danych w php skoro możesz skorzystać z bazy danych, która z definicji jest stworzona własnie do składowania i obróbki danych w sposób najbardziej optymalny (oczywiście to też zależy od tego jak zaprojektujesz bazę ale to temat na później jak już ogarniesz chocby podstawy).

     

     


  4. Przy defaultowej konfiguracji ZFS faktycznie może pożerać większość ramu. Jeśli ZFS ma być używany głównie do hostowania wirtualek to warto dla datasetu utrzymującego zvole wirtualek ustawić parametr primarycache na wartość metadata (domyślnie jest bodajże all). Ponadto można ustalić minimalną i maksymalną ilość pamięci jaką może zająć zfs poprzez parametry zfs_arc_min i zfs_arc_max w /etc/modprobe.d/zfs.conf

    • Upvote 1

  5. Obstawiam zły OS lub zła wersję OS ustawioną w licencji. Nie zmieniałeś nic w licencji już po instalacji directadmina? Instalator nie zainstalowalby sie nawet przy złych ustawieniach licencji ale jesli zrobiles to po instalacji... Ewentualnie zrobiłeś upgrade systemu do nowszej wersji (w centosie - niezalecane ale SIE DA) i nie zmieniłeś odpowiedniej informacji w licencji.

     

    EDIT:

    Imho naucz sie korzystać z google, jak teraz spojrzalem to po wpisaniu frazy "Unable to read /usr/local/directadmin/plugins/Exim_Editor/plugin.conf" wyszukało mi temat, w którym ktos opisuje podobny problem - pierwszy wynik w google.


  6. Pozostaje jeszcze opcja, że niektóre firmy nie chcą się bawić w tłumaczenie klientom dlaczego ich super-za***isty certyfikat ssl nie działa na windows xp na IE albo na starej javie, która jest wymagana przez jakieś stare, bardzo ważne oprogramowanie... SNI rozwiązuje problem wymogu dedykowanego adresu IP ale w niektórych przypadkach albo nie da się uzyć nowszego oprogramowania po stronie klienta, albo klient stwierdza, że skoro zapłacił to musi działać wszędzie.

    • Upvote 2

  7. Nadal nie określiłeś jaki masz problem jednak wnioskując z wklejonego skrawka pewnie chodzi Ci o to, że php nie wystartowało.

    Job for php-fpm70.service failed because the control process exited with error code. See "systemctl status php-fpm70.service" and "journalctl -xe" for details.
    

    W tym komunikacie masz napisane jak mozesz sprawdzić dlaczego usługa nie wystartowała. W przypadku polecenia journalctl -xe najpierw recznie sprobuj odpalic/zrestartowac usluge i od razu wykonaj to polecenie. Powinienes otrzymać informację dlaczego usluga nie uruchomila się lub przynajmniej podpowiedź. Do tego error log php (główny + error logi per domena).

×