Difference between revisions of "Amarok"
Porcelinux (talk | contribs) |
Porcelinux (talk | contribs) m |
||
Line 27: | Line 27: | ||
Anzitutto bisogna creare una password per MySQL, se tu non ne hai già una. | Anzitutto bisogna creare una password per MySQL, se tu non ne hai già una. | ||
$ mysql -u root | $ mysql -u root | ||
set password for root@localhost = password('xxxxxxx'); | set password for root@localhost = password('xxxxxxx'); | ||
flush privileges; | flush privileges; | ||
quit; | quit; | ||
Chiaramente cambia xxxxxx con la password che vuoi. | Chiaramente cambia xxxxxx con la password che vuoi. | ||
Line 36: | Line 36: | ||
Dopo avere impostato la password, bisogna creare un database per amaroK attraverso il classico metodo. Basta semplicemente usare il comando "mysql": (questo ti chiederà la password per l'utente root di MySQL - impostata prima) | Dopo avere impostato la password, bisogna creare un database per amaroK attraverso il classico metodo. Basta semplicemente usare il comando "mysql": (questo ti chiederà la password per l'utente root di MySQL - impostata prima) | ||
$ mysql -p -u root | $ mysql -p -u root | ||
CREATE DATABASE amarokdb; | CREATE DATABASE amarokdb; | ||
USE mysql; | USE mysql; | ||
GRANT select, insert, alter, update, delete, create, drop, create temporary tables, index | GRANT select, insert, alter, update, delete, create, drop, create temporary tables, index | ||
ON amarokdb.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_UTENTE'; | ON amarokdb.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_UTENTE'; | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
Nell'esempio sopra, è stato creato un database chiamato "amarokdb", e un utente chiamato "amarok" che può accedere il locale localhost" usando la password "PASSWORD_UTENTE". Se vuoi usare la funzione per il backup automatico con mysqldump, cambia la stringa GRANT con GRANT ALL | Nell'esempio sopra, è stato creato un database chiamato "amarokdb", e un utente chiamato "amarok" che può accedere il locale localhost" usando la password "PASSWORD_UTENTE". Se vuoi usare la funzione per il backup automatico con mysqldump, cambia la stringa GRANT con GRANT ALL | ||
Line 52: | Line 52: | ||
Perciò può capitare di avere un errore del tipo "Impossibile connettersi al server o al database" (errori che comunque non sono legati alla password sbagliata). Per risolvere tali problemi bisogna editare il file my.cnf sulla macchina col database (/etc/mysql/my.cnf) e decommentare la variabile "bind_address" e riavviare il mysql. Per quanto ne so, non c'è motivo di impostare anche l'interfaccia della scheda di rete e la porta in ascolto. Nel caso comunque andrebbe aggiornato il firewall con i dati di connessione. | Perciò può capitare di avere un errore del tipo "Impossibile connettersi al server o al database" (errori che comunque non sono legati alla password sbagliata). Per risolvere tali problemi bisogna editare il file my.cnf sulla macchina col database (/etc/mysql/my.cnf) e decommentare la variabile "bind_address" e riavviare il mysql. Per quanto ne so, non c'è motivo di impostare anche l'interfaccia della scheda di rete e la porta in ascolto. Nel caso comunque andrebbe aggiornato il firewall con i dati di connessione. | ||
Convertire i Database | === Convertire i Database === | ||
Da SQLite -> MySQL | ==== Da SQLite -> MySQL ==== | ||
Uno (sconsigliato) metodo per trasferire il tuo database SQLite3 a MySQL è: | Uno (sconsigliato) metodo per trasferire il tuo database SQLite3 a MySQL è: | ||
cd ~/.kde/share/apps/amarok && \ | cd ~/.kde/share/apps/amarok && \ | ||
sqlite3 collection.db .dump | \ | sqlite3 collection.db .dump | \ | ||
grep -v "BEGIN TRANSACTION;" | \ | grep -v "BEGIN TRANSACTION;" | \ | ||
grep -v "COMMIT;" | \ | grep -v "COMMIT;" | \ | ||
perl -ne 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/; print' | \ | perl -ne 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/; print' | \ | ||
perl -ne 's/VARCHAR\(256\)/VARCHAR\(255\)/; print' | \ | perl -ne 's/VARCHAR\(256\)/VARCHAR\(255\)/; print' | \ | ||
mysql -u root -p amarokdb | mysql -u root -p amarokdb | ||
Io ho visto che questo metodo non funzionava, potevo importare i dati da SQLite | Io ho visto che questo metodo non funzionava, potevo importare i dati da SQLite | ||
Line 77: | Line 77: | ||
* Importare il file usando MySQL: | * Importare il file usando MySQL: | ||
cat amarok_dump.sql | mysql -u root -p amarokdb | cat amarok_dump.sql | mysql -u root -p amarokdb | ||
Nel caso dia qualche errore, è possibile che tu abbia fatto partire qualche canzone e che il programma abbia scritto delle stringhe riguardo quel particolare file nel database. In questo caso, basta editare il file amarok_dump.sql, e cercare la linea con i dati della canzone; trovatala basta rimuovere TUTTO prima di questa(poichè quei comandi sono già stati eseguiti da MySQL -- si riceverà un errore) Se vuoi contiunuare a usare questa stringa, si può rimpiazzare INSERT INTO con REPLACE INTO. e rilanciare la stringa di comando sopra. | Nel caso dia qualche errore, è possibile che tu abbia fatto partire qualche canzone e che il programma abbia scritto delle stringhe riguardo quel particolare file nel database. In questo caso, basta editare il file amarok_dump.sql, e cercare la linea con i dati della canzone; trovatala basta rimuovere TUTTO prima di questa(poichè quei comandi sono già stati eseguiti da MySQL -- si riceverà un errore) Se vuoi contiunuare a usare questa stringa, si può rimpiazzare INSERT INTO con REPLACE INTO. e rilanciare la stringa di comando sopra. |
Revision as of 08:01, 17 October 2006
Istallare Amarok in Fedora Core
- installa il repositorio livna (rpm's):
rpm -ivh http://rpm.livna.org/fedora/5/i386/livna-release-5-6.noarch.rpm
- Installare gStreamer + plugins....
yum install gstreamer gstreamer-plugins gstreamer-plugins-mp3
- Installare amaroK
yum install amarok
Configurazione
amaroK con MySQL
- Manualmente:
$ ./configure --enable-mysql
- In gentoo:
nel file
/etc/portage/packages.use
aggiungere il flag mysql:
media-sound/amarok xine-lib gstreamer mysql alsa arts it visualization aac ifp ipod kde njb real xinerama xmms
Anzitutto bisogna creare una password per MySQL, se tu non ne hai già una.
$ mysql -u root set password for root@localhost = password('xxxxxxx'); flush privileges; quit;
Chiaramente cambia xxxxxx con la password che vuoi.
Dopo avere impostato la password, bisogna creare un database per amaroK attraverso il classico metodo. Basta semplicemente usare il comando "mysql": (questo ti chiederà la password per l'utente root di MySQL - impostata prima)
$ mysql -p -u root CREATE DATABASE amarokdb; USE mysql; GRANT select, insert, alter, update, delete, create, drop, create temporary tables, index ON amarokdb.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_UTENTE'; FLUSH PRIVILEGES;
Nell'esempio sopra, è stato creato un database chiamato "amarokdb", e un utente chiamato "amarok" che può accedere il locale localhost" usando la password "PASSWORD_UTENTE". Se vuoi usare la funzione per il backup automatico con mysqldump, cambia la stringa GRANT con GRANT ALL
Nota: Di default amarok usa un database chiamato "amarok" e non "amarokdb".
Ora che il database esiste, è sufficiente aprire il pannello di configurazione di amaroK (si trova nel menu Impostazioni), e andare nella sezione Collezione. Qui bisogna cambiare nel menu a tendina SQLite e selezionare MySQL. Probabilmente bisognerà specificare un hostname (il nome del computer, o meglio localhost), la porta (di default la 3306), il nome del database che hai creato per amaroK (nell'esempio precedente "amarokdb") e il nome dell'utente che ha accesso (e che abbia anche i privilegi di scrittura) al database con relativa password (nell'esempio sopra l'utente è "amarok" e la password è "PASSWORD_UTENTE").
Usare il supporto di MySQL da remoto: La maggior parte delle installazioni, usano il demone MySQL configurato per le connessioni in locale (localhost) di default.
Perciò può capitare di avere un errore del tipo "Impossibile connettersi al server o al database" (errori che comunque non sono legati alla password sbagliata). Per risolvere tali problemi bisogna editare il file my.cnf sulla macchina col database (/etc/mysql/my.cnf) e decommentare la variabile "bind_address" e riavviare il mysql. Per quanto ne so, non c'è motivo di impostare anche l'interfaccia della scheda di rete e la porta in ascolto. Nel caso comunque andrebbe aggiornato il firewall con i dati di connessione.
Convertire i Database
Da SQLite -> MySQL
Uno (sconsigliato) metodo per trasferire il tuo database SQLite3 a MySQL è:
cd ~/.kde/share/apps/amarok && \ sqlite3 collection.db .dump | \ grep -v "BEGIN TRANSACTION;" | \ grep -v "COMMIT;" | \ perl -ne 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/; print' | \ perl -ne 's/VARCHAR\(256\)/VARCHAR\(255\)/; print' | \ mysql -u root -p amarokdb
Io ho visto che questo metodo non funzionava, potevo importare i dati da SQLite
così:
* Lanciare amaroK, cambiare il database a mysql, e creare il database (senza far partire nessuna canzone) * Scaricare SQLite Database Browser * Esportare tutti i dati in un file temporaneo, per es. amarok_dump.sql * Rimuovere tutti i comandi sql, BEGIN TRANSACTION, COMMIT e CREATE * Importare il file usando MySQL:
cat amarok_dump.sql | mysql -u root -p amarokdb
Nel caso dia qualche errore, è possibile che tu abbia fatto partire qualche canzone e che il programma abbia scritto delle stringhe riguardo quel particolare file nel database. In questo caso, basta editare il file amarok_dump.sql, e cercare la linea con i dati della canzone; trovatala basta rimuovere TUTTO prima di questa(poichè quei comandi sono già stati eseguiti da MySQL -- si riceverà un errore) Se vuoi contiunuare a usare questa stringa, si può rimpiazzare INSERT INTO con REPLACE INTO. e rilanciare la stringa di comando sopra.