Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 78102 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
mysql-upgrade-slotted.xml (text/plain), 8.91 KB, created by
Stefano Pacella (RETIRED)
on 2006-01-25 13:36:19 UTC
(
hide
)
Description:
mysql-upgrade-slotted
Filename:
MIME Type:
Creator:
Stefano Pacella (RETIRED)
Created:
2006-01-25 13:36:19 UTC
Size:
8.91 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>MySQL, aggiornamento e passaggio a versioni affiancate multiple</title> > ><author title="Autore"> > <mail link="vivo@gentoo.org">Francesco Riosa</mail> ></author> > ><abstract> >Verrà qui descritto il percorso di aggiornamento alla versione "slotted" di >MySQL. ></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>1</version> ><date>2006-01-25</date> > ><chapter> ><title>Aggiornamento da 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 la schedulazione del progetto madre (stabile, bug corretti > attivamente) > </li> > <li> > 4.1 Segue la schedulazione del progetto madre (solo cambiamenti che > riguardano un ampio numero di utenti) > </li> > <li> > 4.0 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 del documento >corrente non è garantito con queste ultime due. ></p> > ><ul> > <li>3.23 antica</li> > <li>5.1 sviluppo attivo</li> ></ul> > ><note> >Di seguito si farà riferimento a un sistema che abbia inizialmente >installato mysql-4.0.26 e si voglia aggiornarlo alla versione >mysql-5.0.18-r30. 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 server 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</i> > <i> mv "${tmpfile}" "${tmpfile}.TMP"</i> > <i> ln -s "${tmpfile}.TMP" "${tmpfile}"</i> > <i>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 mysqldump dalla versione ><b>slotted</b> di MySQL. Notare il suffisso <b>-500</b> al nome del >programma mysqldump, è ricavato dalla versione <b>5.0</b>.x . ></p> > ><pre caption="Esportazione dei database"> ># <i>mysqldump-500 \</i> > <i>--defaults-file=/etc/mysql/my.cnf</i> > <i>-uroot \</i> > <i>--password=</i><comment>'your_password'</comment><i> \</i> > <i>-hlocalhost \</i> > <i>--all-databases \</i> > <i>--opt \</i> > <i>--allow-keywords \</i> > <i>--flush-logs \</i> > <i>--hex-blob \</i> > <i>--master-data \</i> > <i>--max_allowed_packet=16M \</i> > <i>--quote-names \</i> > <i>--result-file=BACKUP_MYSQL_4.0.SQL</i> ></pre> > ><p> >Esiste un file chiamato <path>BACKUP_MYSQL_4.0.SQL</path>, questo >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>echo '</i> > <i>NOCHECK=1</i> > <i>DEBUG=3</i> > <i>mysql_slot_500=(</i> > <i> "skip-networking"</i> > <i> "skip-grant-tables"</i> > <i>)</i> > <i>' > /etc/conf.d/mysql</i> ># <i>/etc/init.d/mysql-500 start</i> ># <i>mysql-500 --defaults-file=/etc/mysql-500/my.cnf < BACKUP_MYSQL_4.0.SQL</i> ># <i>mv /etc/conf.d/mysql.orig /etc/conf.d/mysql</i> ># <i>/etc/init.d/mysql-500 stop</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> > ><note> >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. ></note> > ></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 di esse cercheranno di leggere la sezione <c>[client]</c> del >file <path>/etc/mysql/my.cnf</path>. ></p> > ><p> >Quando si è soddisfatti dei risultati, si possono rimuovere le impostazioni >di test, fermare il vecchio server e fare ripartire il nuovo. Fare anche in >modo che sia quest'ultimo a partire all'avvio della macchina. ></p> > ><pre caption="Utilizzare il nuovo server"> ># <i>rc-update del mysql default</i> ># <i>rc-update add mysql-500 default</i> ># <i>/etc/init.d/mysql stop</i> ># <i>/etc/init.d/mysql-500 start</i> ></pre> > ><p> >Dis-installare la vecchia versione e rendere di default quella nuova. Il >comando "unmerge" <b>non</b> sara' in grado di rimuovere alcuni file, 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="Pulizia, passo uno"> ># <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>rm -rf /usr/lib/*.TMP</i> ># <i>for i in /usr/lib/*mysql* ; do</i> > <i> readlink -f $i || [[ -L $i ]] && rm $i</i> > <i>done</i> ># <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="Dipendenze inverse, ricostruzione"> ># <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 installazione, anche la versione di ><path>libmysqlclient.so</path> può essere diversa, le versioni conosciute >sono ad oggi 10, 12, 14 o 15, utilizzare quella del <e>vecchio</e> >pacchetto. ></note> > ></body> ></section> ></chapter> > > ><chapter> ><title>Ritocchi finali</title> ><section> ><body> > ><pre caption="Aggiornare il database degli utenti"> ># <i>mysql_fix_privilege_tables-500 \</i> > <i>--defaults-file=/etc/mysql-500/my.cnf \</i> > <i>--user=root \</i> > <i>--password=</i><comment>'your_password'</comment><i></i> ># <i>mysql -uroot -p</i><comment>'your_password'</comment><i> mysql -e "FLUSH PRIVILEGES;"</i> ># <i>for tbl in $( mysql --silent -uroot -p</i><comment>'your_password'</comment><i> -e 'USE mysql ; SHOW TABLES LIKE "help%";' )</i> > <i>do</i> > <i>mysql -uroot -p</i><comment>'your_password'</comment><i> -e "use mysql ; TRUNCATE TABLE ${tbl};"</i> > <i>done</i> ># <i>mysql -uroot -p</i><comment>'your_password'</comment><i> 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