分类: LINUX
2008-11-27 14:25:33
Amarok 1.2 及更高版本,除了内置的 SQLite 数据库引擎,还支持以 MySQL 作为数据库后台。为了能在编译后获得 MySQL 支持,你需要在编译的时候加上 " --enable-mysql "这个配置参数,然后再以 root 权限执行 " install ",你的配置行可能就像这样子:
$ ./configure --enable-mysql
还要请你确定你已经安装了 libmysqlclient 这个库文件和其头文件(是带着 -dev 字样的包)。
Amarok 1.4 需要 MySQL 版本在 4.0 及其以上,现在(撰写此文时) MySQL 的版本已经升到 5.0.22 了。Amarok-1.4.2 得 MySQL-5.0.24 以及 Amarok 1.4.5 和 MySQL 5.0.27 都融合的很好。
老版本的 Amarok 可能最好还是使用版本号 < 5.0 的MySQL。这是因为 Amarok 的数据库在不断增长,每个音轨在每次扫描时都要进行多次读取数据库。
如果你的 locale 是UTF-8,请确定你的 mqsl 守护程序的默认字符集也是设定为 utf8 的,这样所有创建的表和数据库的字符集都会是 utf8。在 Debian 中:
1) 编译Edit /etc/mysql/my.cnf, 在 之间添加这样一行:
default-character-set = utf8
2) 然后,重启 mqsql 守护程序,使新的默认字符集生效。
这些要在你为 amarok 创建数据库之前完成。
请确定 MySQL 守护程序正在运行当中。如果你必要,可以把它添加到你的 Linux 启动脚本中。方法请阅读你所用发行版的参考指南。
为 MySQL 创建一个 root 密码,如果你没有,就照下面这样做吧。
$ mysql -u root
set password for root@localhost = password('xxxxxxx');
flush privileges;
quit;
当然要把 XXXXXX 改成你要设的密码。
这个做完后,你就要建立一个 MySQL 数据库 和一个 amarok 用户,方法自选。可以参考下面的 " mysql " 命令(会提醒你输入 MySQL root 的密码):
$ mysql -p -u root
CREATE DATABASE amarok;
USE amarok;
GRANT ALL ON amarok.* TO amarok@localhost IDENTIFIED BY 'PASSWORD_CHANGE_ME';
FLUSH PRIVILEGES;
在上面这个例子里,创建了一个名为 "amarok " 的数据库,得一个名为 " amarok "的用户。这个用户可以使用"PASSWORD_CHANGE_ME"这个密码来连接数据库。可以使用 amarokuser@'%' 来进行远程连接。
要用 'GRANT ALL' 把所权限都赋给 "amarok" 用户,这很重要,因为,"amarok" 用户需要 ALTER 权限来修改它的数据库。
数据库建好了之后,打开 Amarok 的配置界面(在设置(Settings)菜单中),点击收藏(Collection)标签。把下拉菜单的值 SQLite 换成 MySQL。同时,设定主机(host) "localhost"(如果数据库是在本机上), 端口号(一般都是3306), 你刚才新创建的数据库名("amarok",或者你自己设定的名字)。另外 能对数据读写的用户还要填上密码(在本例中,用户名是 "amarok", 密码是 "PASSWORD_CHANGE_ME")
连接远程的 MySQL 服务器:绝大部分的 MySQL 守护程序都被默认设定为只侦听来自本机的请求。
因此,如果你在连接服务器或数据库出错时(不是密码错误),你可能要修改主机上的 my.cnf(一般路径是/etc/mmysql/my.cnf),注释掉"bind_address" 变量,然后重启 MySQL。如果是使用 tcp socket 来连接的话,可能还要注释掉 "skip_networking"。
现在还没有办法修改它侦听的接口。要么只侦听一个,要么全部。你最后可能要更新你的防火墙。