Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 78760 Details for
Bug 120222
[it]Migration to slotted MySQL initial document
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
mysql-upgrade-slotted.xml
mysql-upgrade-slotted.xml (text/plain), 9.88 KB, created by
Stefano Pacella (RETIRED)
on 2006-02-02 15:07:39 UTC
(
hide
)
Description:
mysql-upgrade-slotted.xml
Filename:
MIME Type:
Creator:
Stefano Pacella (RETIRED)
Created:
2006-02-02 15:07:39 UTC
Size:
9.88 KB
patch
obsolete
><?xml version='1.0' encoding="UTF-8"?> ><!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> ><!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/mysql-upgrading.xml,v 1.7 2006/01/04 11:26:16 neysx Exp $ --> > ><guide link="/doc/it/mysql-upgrade-slotted.xml" lang="it"> ><title>Guida per l'aggiornamento e il passaggio a versioni MySQL affiancate multiple</title> > ><author title="Autore"> > <mail link="vivo@gentoo.org">Francesco Riosa</mail> ></author> ><author title="Redazione"> > <mail link="chriswhite@gentoo.org">Chris White</mail> ></author> ><author title="Redazione"> > <mail link="jkt@gentoo.org">Jan Kundrát</mail> ></author> ><author title="Redazione"> > <mail link="jackdark@gmail.com">Joshua Saddler</mail> ></author> ><author title="Revisione"> > Team italiano ></author> > ><abstract> >Questo documento descrive il percorso di aggiornamento alla versione "slotted" di >MySQL, e cerca di renderlo più semplice possibile. ></abstract> > ><!-- The content of this document is licensed under the CC-BY-SA license --> ><!-- See http://creativecommons.org/licenses/by-sa/2.5 --> ><license/> > ><version>3</version> ><date>2006-02-02</date> > ><chapter> ><title>Aggiornamento delle versioni precedenti di MySQL</title> ><section> ><body> > ><p> >Questo documento spiega come aggiornare MySQL alla più recente versione >disponibile. Attualmente ci sono tre versioni di MySQL supportate in >Portage: ></p> > ><ul> > <li> > 5.0 segue i rilasci del progetto madre nel tree stabile e è mantenuto > attivamente > </li> > <li> > 4.1 segue i rilasci del progetto madre con in più la implementazione dei > maggiori bugfix e degli aggiornamenti di sicurezza, e non sono aggiunte > nuove caratteristiche > </li> > <li> > 4.0 contiene solamente aggiornamenti riguardanti la sicurezza > </li> ></ul> > ><p> >Ci sono due versioni addizionali attualmente ma non sono supportate. Con >questo si intende che i bug riportati verranno corretti con una priorità >molto bassa e possono mancare funzionalita'. Il funzionamento di questo >documento non è garantito con le seguenti versioni: ></p> > ><ul> > <li>3.23 deprecata</li> > <li>5.1 attualmente in sviluppo</li> ></ul> > ><note> >Di seguito si farà riferimento a un sistema che abbia inizialmente installato ><c>mysql-4.0.26</c> e si voglia aggiornarlo alla versione ><c>mysql-5.0.18-r30</c>. Sostituire le versioni menzionate con quelle >volute. ></note> > ></body> ></section> ></chapter> > > ><chapter id="install_the_new_version"> ><title>Installare la nuova versione</title> ><section> ><body> > ><p> >Questo passo richiede di (ri)muovere alcuni file dall'ambiente di produzione, >quindi la prima cosa da fare è archiviare una copia del <e>server</e> corrente, (si >tralasciano i dati per ora). Fatto questo, è possibile rimuovere i file che >creerebbero un conflitto con la versione "slotted" di MySQL, quindi verrà >installata una versione che si affianchi a quella corrente. ></p> > ><pre caption="Archiviare il vecchio server e installare il nuovo"> ># <i>quickpkg dev-db/mysql</i> ># <i>rm -rf /usr/include/mysql /usr/bin/mysql_config</i> ># <i>for tmpfile in /usr/lib/*mysql* > do > mv "${tmpfile}" "${tmpfile}.TMP" > ln -s "${tmpfile}.TMP" "${tmpfile}" > done</i> ># <i>emerge -av =dev-db/mysql-5.0.18-r30</i> ></pre> > ><p> >Assicurarsi di aggiornare lo script di avvio <path>/etc/init.d/mysql</path> >utilizzando <c>etc-update</c> o <c>dispatch-conf</c>. ></p> > ></body> ></section> ></chapter> > ><chapter> ><title>Copiare i dati nel server appena installato</title> ><section> ><body> > ><p> >Si inizia con l'esportare i dati, questi verranno importati nella nuova >versione di MySQL. Si utilizza <c>mysqldump</c> dalla versione ><b>slotted</b> di MySQL. Notare il suffisso <b>-500</b> al nome del >programma <c>mysqldump</c>, è ricavato dalla versione <b>5.0</b>.x . ></p> > ><impo> >Se si sta aggiornando tra versioni e revisioni, per esempio da ><c>dev-db/mysql-5.0.18</c> a <c>dev-db/mysql-5.0.18-r30</c>, si può stoppare >il database, spostare la directory dati a quella della versione nuova, e far >ripartire il server. Ciò permette di saltare questa sezione. ></impo> > ><pre caption="Esportazione dei database"> ># <i>mysqldump-500 \ > --defaults-file=/etc/mysql/my.cnf \ > --user=root \</i> > <comment>(Sostituire 'your_password' con la propria password di root MySQL)</comment> > <i>--password='your_password' \ > --host=localhost \ > --all-databases \ > --opt \ > --allow-keywords \ > --flush-logs \ > --hex-blob \ > --master-data \ > --max_allowed_packet=16M \ > --quote-names \ > --result-file=BACKUP_MYSQL_4.0.SQL</i> ></pre> > ><p> >E' stato creato un file chiamato <path>BACKUP_MYSQL_4.0.SQL</path>, che può >essere usato per ricreare i dati. I dati sono descritti nel dialetto SQL di >MySQL, ossia lo "Structured Query Language". ></p> > ><p> >Avviare il server senza connettività di rete e senza utilizzare il controllo >degli utenti, e quindi eseguire lo script SQL: ></p> > ><pre caption="Caricare i dati"> ># <i>mv /etc/conf.d/mysql /etc/conf.d/mysql.orig</i> ># <i>cat <<- EOF > /etc/conf.d/mysql > NOCHECK=1 > DEBUG=3 > mysql_slot_500=( > "skip-networking" > "skip-grant-tables" > "socket=/tmp/mysqld.sock" > ) > EOF</i> ># <i>/etc/init.d/mysql start</i> ># <i>mysql-500 --defaults-file=/etc/mysql-500/my.cnf --socket=/tmp/mysqld.sock < BACKUP_MYSQL_4.0.SQL</i> ># <i>/etc/init.d/mysql stop</i> ># <i>mv /etc/conf.d/mysql.orig /etc/conf.d/mysql</i> ></pre> > ><note> >Per convertire i dati alla codifica UTF-8 in questa fase è <e>necessario</e> >rimuovere l'opzione <c>--hex-blob</c> dal comando <c>mysqldump</c>, quindi >"filtrare" i dati tramite un convertitore come <c>iconv</c>. In molti casi >questo si ottiene con un "piping" (accodamento dell'i/o dei programmi) come: ><c>iconv -f ISO_8859-1 -t UTF8 BACKUP_MYSQL_4.0.SQL | mysql-500 >--defaults-file=/etc/mysql-500/my.cnf</c>. Tuttavia può essere necessario >modificare manualmente lo script SQL, a seconda della sua struttura e dei >dati ivi contenuti. ></note> > ><p> >Se esistono applicazioni che continuano a <e>scrivere</e> sul database >precedente, è possibile impostare una relazione di replicazione (replication >setup) dei dati tra i due database. Tuttavia questo non verrà trattato in >questa sede. ></p> > ></body> ></section> ></chapter> > > ><chapter> ><title>Passare al nuovo server</title> ><section> ><body> > ><p> >Per essere sicuri che le applicazioni interagiscano correttamente con il >server appena installato, fare delle prove. Praticamente qualsiasi >applicazione legge delle impostazioni di configurazione nelle quali è >possibile specificare quale "porta" di rete oppure quale "socket" utilizzare >per connettersi al database server. Semplicemente, eseguire il server su una >porta alternativa (ad esempio 3307) e impostare la propria applicazione (o >una copia di essa) per connettersi con i paramentri voluti. Prestare >attenzione al fatto che molte applicazioni cercheranno di leggere la sezione ><c>[client]</c> del file <path>/etc/mysql/my.cnf</path>. ></p> > ><p> >Prima di passare al nuovo server MySQL, si deve impostare la seguente >variabile in <path>/etc/conf.d/mysql</path>. Il suo valore potrebbe essere >vuoto: ></p> > ><pre caption="Ipostare la variabile mysql_slot_500"> ># <i>nano -w /etc/conf.d/mysql</i> ><comment>(Add the following line:)</comment> ><i>mysql_slot_500=( )</i> ></pre> > ><p> >Quando si è soddisfatti dei risultati, si possono rimuovere le impostazioni >di test, fermare il vecchio server e fare ripartire il nuovo: ></p> > ><pre caption="Utilizzare il nuovo server"> ># <i>killall mysqld</i> ># <i>/etc/init.d/mysql stop zap start</i> ></pre> > ><p> >Dis-installare la vecchia versione e rendere di default quella nuova. Il >comando "unmerge" non sara' in grado di rimuovere alcuni file, come quelli >spostati precedentemente in <uri link="#install_the_new_version">Installare >la nuova versione</uri>. Questo è un comportamento voluto, e scongiura il >malfunzionamento di applicazioni connesse alla vecchia versione di MySQL. ></p> > ><pre caption="Cancellare la vecchia versione"> ># <i>emerge --unmerge --pretend mysql</i> ># <i>emerge --unmerge =dev-db/mysql-4.0.26</i> ># <i>cd /etc</i> ># <i>mv mysql mysql.$(date +%F_%H-%M)</i> ># <i>rm -rf /usr/lib/*.TMP</i> ># <i>for i in /usr/lib/*mysql* > do > [[ -z "$( readlink -f $i )" ]] && [[ -L $i ]] && rm $i > done</i> > ><comment>(emergere app-admin/eselect-mysql se non lo si ha già fatto)</comment> ># <i>eselect mysql list</i> ># <i>eselect mysql set 1</i> ># <i>eselect mysql show</i> ></pre> > ></body> ></section> ></chapter> > > ><chapter> ><title>Re-installare le applicazioni</title> ><section> ><body> > ><p> >Una volta rimosso il vecchio MySQL, si possono re-installare i pacchetti che >lo utilizzano. Notare che per trovare e reinstallare i pacchetti è necessario >il programma <c>revdep-rebuild</c> fornito da ><c>app-portage/gentoolkit</c>. ></p> > ><pre caption="Ricostruzione dipendenze inverse"> ># <i>revdep-rebuild --soname libmysqlclient.so.12 -- -p -v</i> ># <i>revdep-rebuild --soname libmysqlclient.so.12</i> ></pre> > ><note> >A seconda di quale sia la precedente versione, anche quella di ><path>libmysqlclient.so</path> può essere diversa, le versioni conosciute >sono ad oggi <c>10</c>, <c>12</c>, <c>14</c> o <c>15</c>. Scegliere la >versione corretta del <e>vecchio</e> pacchetto. ></note> > ></body> ></section> ></chapter> > > ><chapter> ><title>Ritocchi finali</title> ><section> ><body> > ><pre caption="Aggiornare il database degli utenti"> ><comment>(Sostituire 'your_password' con la propria password di root MySQL)</comment> ># <i>mysql_fix_privilege_tables-500 \ > --defaults-file=/etc/mysql-500/my.cnf \ > --user=root \ > --password='your_password'</i> ># <i>mysql -uroot -p'your_password' mysql -e "FLUSH PRIVILEGES;"</i> ># <i>for tbl in $( mysql --silent -uroot -p'your_password' -e 'USE mysql ; SHOW TABLES LIKE "help%";' ) > do > mysql -uroot -p'your_password' -e "use mysql ; TRUNCATE TABLE ${tbl};" > done</i> ># <i>mysql -uroot -p'your_password' mysql < /usr/share/mysql/fill_help_tables.sql</i> ></pre> > ><p> >Se si sono incontrati problemi nella fase di aggiornamento, si è pregati di >riportarli sul nostro <uri link="https://bugs.gentoo.org">Bugzilla</uri>. ></p> > ></body> ></section> ></chapter> > ></guide>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 120222
:
78031
|
78071
|
78102
| 78760