per un po ' (non molto chiaro le mie ragioni) Non sono riuscito a migliorare il demone di PostgreSQL nel distributiva aggiornare uno dei miei server Debian. demone PostgreSQL ha una bella caratteristica non iniziato a utilizzare la nuova versione (a differenza di Mysql) pur non convincere, il nuovo è pienamente compatibile con il lancio – estremamente utile per grandi database. Il processo di aggiornamento limitato al seguente 2 orme:

  • pg_dropcluster
  • pg_upgradecluster

Prima izdropite pg gruppo daemon deve essere fermato!

pg_dropcluster 9.4 main

Тази команда преминава бързо, след което преминаваме към съществената частсамият ъпгрейд

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

Ако всичко е минло гладко трябва да получите съобщение като горното което ви подканва да разкарате старите данни от pg.

pg_dropcluster 9.1 main

В края на тая тарпана вече можете да стартирате процеса си отново. При мен базите са малки и за съжаление не мога да дам оценка за колко време преминава същественият ъпгрейд.

Dalla scorsa settimana ha acquistato installazione Fantastico Deluxe, che a mio modesto parere è uno dei più decente per i server CPanel. Abbiamo installato e testato tutto è andato liscio. Oggi, un cliente mi ha parlato di un problema con la codifica di installazione di WordPress. Attraverso la roba e basi problema immediatamente brillato erano Latin1 UTF8 codifica di default invece di assumere. Ancora più divertente è, che phpMyAdmin-scritto e viene utilizzato per impostazione predefinita UTF8, dramma. Ho deciso di esaminare i file di Fantastico-per vedere se c'è un posto dove posso trovare me stesso impostazioni del database di default in un primo momento non vide nulla. Poi qualcosa mi Tekna per vedere cosa c'è in my.conf-e cosa vedere non c'era impostazioni corrispondenti nella configurazione e tutte le sue luci su qualunque cosa è impostato come predefinito. server MySQL hardkodnat use utf8 meno che non sia configurato con le altre impostazioni e fantastico-ovviamente è Latin1 ( che è abbastanza stupido decisione). La soluzione è banale come sempre aggiungere 2 linea in [mysqld] parte mancante di modo da UTF8 come codifica per impostazione predefinita e tutto va a dormire 🙂

carattere-set-server = utf8
regole di confronto server = utf8_general_ci

Non ho idea perché ho perso queste impostazioni quando ho giocato a fare diversi “Finney” MySQL impostazioni-.

Arricchito da Zemanta

Image representing MySQL as depicted in CrunchBase

Qualche tempo fa ho scritto su MySQL Full Text Search 🙂 Oggi ho avuto un interessante esperienza con una query. In generale, la query è alla ricerca di risultati che mancano un'altra tabella. A selezionare un sub con e selezionare nella parte dove l'applicazione. In generale, lo scheletro ed è

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

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

In generale, una semplice richiesta. L'ho scritto per 30 SEC liberarla e bloccato la macchina. Dopo un lungo e pazientemente in attesa da parte mia o solo ~ 43 sec . Sputare il mio punteggio lol . Pfff Madhouse. Inserire nella macchina che dall'aspetto CPU normalmente viene caricata quasi in condizione di inattività. Shock e awe. Eseguire la query ancora ancora lo stesso risultato. Cazzo WTF. Eseguire la query e spiegare tutto io – il secondo campo è solo secondTextField ricerca full-text Nessun indice, e c'è un vassoio modesto di circa 35 k linea. Cosa leggere – Indice di ricerca full-text non è. È già chiaro il problema reale rapidamente uno

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

E le cose si posti che query ha preso 0.0005 😀 sec

Stare attento come metti gli indici di essi dipende il tasso marginale di applicazione.

p. s nel suo complesso mi sbaglio circa la situazione di cui sopra non solo perché manca un indice perché non si utilizza testo completo ricerca metodo 😀

Arricchito da Zemanta

Ieri dopo aver aggiornato la versione di MySQL, server visto che mi cominciò a gridare a me, che vi è una tabella, che non è stata chiusa in modo pulito e ha bisogno di riparazione, ecc. bla, Che sarà mai questo tavolo, Ancora ho il mio 30-qualcosa su questo server. Una possibilità è quella di vedere nel giornale di bordo s quello che dice sulla questione ed eseguire la riparazione della tabella o l'altra opzione – di gran lunga il migliore – E 'per eseguire la riparazione, la verifica e l'ottimizzazione di tutte le tabelle. Questo userà strumento mysqlcheck. Generalmente le opzioni in questo caso sono entrambi komendi sono sinonimi a vicenda:

mysqlcheck -Aor -u root -p

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

In generale, che entrambi i comandi da utilizzare, l'effetto sarà lo stesso – riparazione fragrante, screening e ottimizzazione di tutte le tabelle. Dopo aver digitato uno dei comandi, vi verrà chiesto per la password di root di mysql server-a si.