Z powodu jakichkolwiek (nie bardzo jasne dla mnie powodów) zapomniałem zrobić aktualizację postgresql demona pod wpływem mediatorów stanu zapalnego przy aktualizacji jednego z serwerów Debiana mi. Postgresql demon ma przyjemny właściwość nie zaczyna korzystać z nowej wersji (w przeciwieństwie do Mysql) w tym czasie jak nie przekonać, co nowego w pełni kompatybilny z uruchomieniem – bardzo przydatne w przypadku dużych baz danych. Sam proces aktualizacji, między innymi, następujące 2 kroki:

  • pg _ dropcluster
  • pg _ upgradecluster

Zanim издропите klastra pg demon musi być zatrzymany!

pg_dropcluster 9.4 main

ten rozkaz jest szybko, więc idź do części – modernizacja

pg_upgradecluster 9.1 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------------e-C
port   5433
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database xpqt...
Analyzing database xpqt...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

pg_dropcluster 9.1 main

jeśli to минло sprawnie powinien otrzymać wiadomość, żeby jak stare dane z pg.

pg_dropcluster 9.1 main

na koniec tego тарпана można ponownie rozpocząć proces. w małych i, niestety, nie mogę dać ci oszacowanie, ile czasu minie znacznej modernizacji.

W zeszłym tygodniu kupił Fantastico Deluxe zabudowy, który moim skromnym zdaniem-jest to jeden z najbardziej приличните dla serwera CPanel. Zainstalowaliśmy go testowałem i wszystko poszło gładko. Dziś jeden klient mi powiedział o problemie z енкодинга na wordpress. Przeanalizowałem wszystko i raz лъсна problemy, były w nim z енкодинг domyślnie Latin1 zamiast UTF8, jak zakładano. Jeszcze najśmieszniejsze, co do phpmyadmin-pisze, że jest używany domyślnie UTF8, teatr. Postanowiłem zobaczyć pliki Fantastico to, aby zobaczyć, czy nie ma gdzieś, gdzie mogę zaoferować ustawienia domyślnej bazy danych na pierwszy rzut oka nie widać nic. Coś mnie tecna, aby zobaczyć, co jest w my.konf-a i widzę, że nie było odpowiednich ustawień w konfiguracji, i wszyscy upadli na to, że jest on ustawiony domyślnie. Serwer Mysql хардкоднат korzystać z UTF8 jeśli nie jest skonfigurowany na inne parametry i Fantastico-to, oczywiście, z Latin1 ( że to dość głupie rozwiązanie). Rozwiązanie jest trywialne jak zawsze dodać 2 linii w [тузды] brakujące części tak, aby być UTF8 kodowania domyślnie, i wszystko idzie spać 🙂

znak zestaw serwer = utf8
sortowanie serwera = utf8_general_ci

НЯМАМ НИКАКВА ИДЕЯ ПОРАДИ КАКВА ПРИЧИНА СЪМ ПРОПУСНАЛ KONTRAŚCIE DO ТЕЗИ НАСТРОЙКИ ПРИ ПОЛОЖЕНИЕ ЧЕ СИ ИГРАХ ДА ПРАВЯ НЯКОЛКО “ФИНИ” Настройки на mysql-а.

Wzmocnione przez Zemanta

Image representing MySQL as depicted in CrunchBase

Jakiś czas temu pisałem o MySQL pełny tekst wyszukiwania 🙂 Dzisiaj miałem bardzo ciekawe doświadczenia z kwerendy. Ogólnie rzecz biorąc wyniki, których brakuje w innej tabeli szuka kwerendy. A wybierz sub osnovne i wybierz w części gdzie aplikacji. Ogólnie rzecz biorąc, szkielet i jest

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

Ogólnie rzecz biorąc wniosek prosty. Napisałem ją dla 30 SEC zwolnienia jej i zatrzymany maszynę. Po długo i cierpliwie czekam na mojej strony lub po prostu ~ 43 sec . Pluć moja Ocena na lol . Pfff dom wariatów. Wprowadź w maszynie, na której szuka CPU jest normalnym obciążeniu prawie w stan spoczynku. Szok i przerażenie. Uruchom kwerendę ponownie nadal ten sam wynik. Kurwa WTF. Uruchom kwerendę i wyjaśnić wszystko I – drugie pole jest tylko secondTextField przeszukiwanie pełnego tekstu Nie indeksu, i jest skromny taca około 35 k linii. Co do czytania – indeks wyszukiwania pełnotekstowego nie jest. Jest już jasne, bardzo szybko jeden problem

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

I rzeczy zwrócił miejsc, wziąłem kwerendy 0.0005 s 😀

Uważaj, jak umieścić indeksy z nich zależy od Twojego kredytu marginalnego aplikacji.

p. s jako całość mylę o powyższej sytuacji nie tylko dlatego, że brakuje indeksu, ponieważ nie używa 😀 Metoda wyszukiwania pełnotekstowego

Wzmocnione przez Zemanta

Wczoraj, po aktualizacji wersji mysql, server-przyznał mój zaczął na mnie krzyczeć,, co jest tabliczka, która nie została zamknięta czysto i wymaga naprawy, i tak dalej. Bla, jaki będzie tę tabelę, nadal mi około 30 minut na tym serwerze. Jedną z opcji jest, aby zobaczyć w log-ach, co pisze na ten temat i naprawa tabeli lub innej opcji – znacznie lepiej – - naprawa, kontrola i optymalizacja wszystkich tabel. Do tego program będzie korzystać z mysqlcheck. Zazwyczaj w tym przypadku są opcje obu komendi są tożsame ze sobą:

mysqlcheck -Aor -u root -p

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

Ogólnie, że obie komendy do korzystania, efekt będzie taki sam – pachnące naprawy, badań przesiewowych i optymalizacji wszystkich tabel. Po wpisaniu jednego z poleceń, poprosimy o hasło roota MySQL server-a ty.