Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 78031 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]
it/mysql-migrate-to-slot.xml
mysql-migrate-to-slot.xml (text/plain), 8.93 KB, created by
Francesco R. (RETIRED)
on 2006-01-24 14:27:29 UTC
(
hide
)
Description:
it/mysql-migrate-to-slot.xml
Filename:
MIME Type:
Creator:
Francesco R. (RETIRED)
Created:
2006-01-24 14:27:29 UTC
Size:
8.93 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/en/mysql-upgrading.xml"> ><!-- http://localhost:8008/doc/en/mysql-upgrading.xml --> ><title>MySQL, aggiornamento a passaggio a versioni affiancate multiple</title> > ><author title="Author"> > <mail link="vivo@gentoo.org">Francesco Riosa</mail> ></author> > ><abstract> >Verra' 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.6</version> ><date>2006-01-04</date> > ><chapter> ><title>Aggiornamento da versioni precedenti di MySQL</title> ><section> ><body> > ><p> >Questo documento spiega come aggiornare MySQL alla piu' recente >versione disponibile. >Attualmente ci sono tre versioni di MySQL supportate in portage: > ><ul> > <li>5.0 Segue la schedulazione del progetto madre (stabile, bachi 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> > >Ci sono due versioni addizionali attualmente ma non sono supportate. >Con questo si intende che i bachi riportati verranno corretti con una priorita' >molto bassa e possono mancare funzionalita'.<br /> >Il funzionamento del documento corrente non 'e garantito con queste ultime due. > ><ul> > <li>3.23 antica</li> > <li>5.1 sviluppo attivo</li> ></ul> ></p> > ><note> > Di seguito si fara' riferimento a un sistema che abbia inizialmente installato mysql-4.0.26 > e si voglia aggiornarlo alla versione mysql-5.0.18-r30<br /> > Sostituite 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 'e archiviare una copia del server corrente, > (tralasciamo i dati per ora).<br /> > Fatto questo, 'e possibile rimuovere i file che creerebbero un conflitto con la versione > "slotted" di MySQL, quindi verra' installata una versione che si affianchi a quella corrente. ></p> > ><pre caption="Archiviare il veccho 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> >Assicurati di aggiornare lo script di avvio /etc/init.d/mysql utilizzando >etc-update o dispatch-conf. ></p> > ></body> ></section> ></chapter> > ><chapter> ><title>Copiare i dati nel server appena installato</title> ><section> ><body> > ><p> >Iniziamo con l'esportare i dati, questi verranno importati nella nuova >versione di mysql.<br /> >Stiamo per utilizzare mysqldump dalla versione <b>slotted</b> di MySQL.<br /> >Notare il suffisso "<b>-500</b>" al nome del programma mysqldump, 'e 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> >Ora esiste un file chiamato <path>BACKUP_MYSQL_4.0.SQL</path>, quest' ultimo puo' >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 connettivita' 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 <b>necessario</b> > rimuovere l'opzione "--hex-blob" dal comando mysqldump, > quindi "filtrare" i dati tramite un convertitore quale "iconv".<br /> > In molti casi questo si ottiene con un "piping" (accodamento dell' i/o dei programmi) > come di seguito:<br /> > "iconv -f ISO_8859-1 -t UTF8 BACKUP_MYSQL_4.0.SQL > | mysql-500 --defaults-file=/etc/mysql-500/my.cnf"<br /> > Tuttavia puo' essere necessario modificare manualmente lo script SQL, a > seconda della sua struttura e dei dati ivi contenuti. ></note> > ><note> > Se esistono applicazione che continuano a <comment>scrivere</comment> sul > database precedente, 'e possibile impostare una relazione di replicazione > (replication setup) dei dati tra i due database. > Tuttavia questo non verra' trattato in questa sede. ></note> > ></body> ></section> ></chapter> > > ><chapter> ><title>Passare al nuovo server</title> ><section> ><body> ><p>Se 'e essere sicuri che le applicazioni interagiscano correttamente >con il server appena installato, fate delle prove, praticamente qualsiasi >applicazione legge delle impostazioni di configurazione nelle quali 'e >possibile specificare quale "porta" di rete oppure quale "socket" utilizzare >per connettersi al database server.<br /> >Semplicemente, eseguite il server su una porta alternativa (ad esempio 3307) >e impostate la vostra applicazione o una copia di essa per connettersi con >i paramentri voluti.<br /> >Prestate attenzione al fatto che molte di esse cercheranno di leggere la sezione >"[client]" del file /etc/mysql/my.cnf.<br/> ></p> > ><p> >Quando siete soddisfatti dei risultati, rimuovete le impostazioni di test, >fermate il vecchio server e fate ripartire il nuovo.<br /> >Fate 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-installa la vecchia versione e rendi quella nuova la predefinita. >Il comando di "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 'e un comportamento voluto, e scongiura il malfunzionamento di applicazioni >connesse al 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, puoi re-installare i pacchetti che lo >utilizzano. Nota che per trovare e reinstallare i pacchetti 'e necessario >il programma <c>revdep-rebuild</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 libmysqlclient.so puo' essere diversa, le versioni conosciute sono >ad oggi 10, 12, 14 or 15, utilizza quella del <comment>vecchio</comment> 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 avete incontrato problemi nella fase di aggiornamento, siete 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