在 MySQL 中存储 amaroK 数据
默认情况下,amaroK 将有关您的 [音乐] 收藏(包括收听习惯和排名)的信息存储在文件系统上的 SQLite 数据库文件中。如果您仅在一台计算机上使用 amaroK,这很好用,但如果您在多台计算机上运行它,您可能希望您的信息在机器之间持久存在。amaroK 支持使用 MySQL 数据库进行这种类型的存储,但这确实需要事先进行一些设置才能使用。本技巧将描述迁移到 MySQL 集合数据库所需的步骤。
首先,您需要对 MySQL 数据库的 root 访问权限才能为 amaroK 创建新数据库。如果您计划从任何地方访问此数据库,您将需要在一台始终在线的面向 Internet 的机器上。以 root 身份登录到数据库并创建初始数据库
$ mysql -p -u root
mysql> CREATE DATABASE amarokdb;
mysql> USE mysql;
mysql> GRANT select, insert, update, delete, create, drop, create \
temporary tables, index ON amarokdb.* TO amarok@localhost IDENTIFIED \
BY 'password_here';
mysql> FLUSH PRIVILEGES;
将 password_here 替换为您想要为 amarok 用户使用的密码。现在数据库已创建,单击“设置”>“配置 amaroK”,然后从 amaroK 配置窗口中单击“集合”。将“集合数据库引擎”更改为“MySQL”,然后输入 MySQL 数据库的主机名以及数据库的名称(本例中为 amarokdb)以及用户名和密码(本例中为 amarok 和您选择的密码)。单击“确定”。amaroK 现在将开始使用 MySQL 数据库来存储其设置。
要将 SQLite 数据导入 MySQL,amaroK 团队创建了此方法,但未获得官方支持。首先将您的 ~/.kde/share/apps/amarok/collection.db 文件复制到您的数据库服务器,然后键入
$ sqlite3 collection.db .dump | \
grep -v "BEGIN TRANSACTION;" | \
grep -v "COMMIT;" | \
perl -ne "s/INSERT INTO \"(.*)\"
VALUES/INSERT INTO \1 VALUES/; print" | \
mysql -u root -p amarok
此技术提示摘自 Linux Multimedia Hacks,作者是 Linux Journal 专栏作家 Kyle Rankin。由 O'Reilly Media 出版,ISBN:0-596-10076-0。版权所有 2006。如需更多信息,请访问 http://www.oreilly.com。