# media-sound/amarok-2.2.2.90 -embedded

## flammenflitzer

Hat das schon jemand ausprobiert? Macht das Sinn? Bisher war ja immer mit embedded.

----------

## schachti

Läuft bei mir - Nachteil: Du musst MySQL installieren und konfigurieren (und MySQL muss laufen, wenn Du Amarok startest).

----------

## flammenflitzer

Vorteil ?

----------

## franzf

 *flammenflitzer wrote:*   

> Vorteil ?

 

Kannst du dir doch selber denken, was ne globale DB mit Passwortschutz gegenüber einer Userlokalen hat  :Wink: 

Ein großes Musikverzeichnis für alle User. Eine DB, auf die alle User Zugriff haben. Starten mehrere User amarok (gleichzeitig angemeldet) hast du nicht genauso viele mysql-Instanzen.

Desweiteren sollte amarok (etwas) schneller starten, da nicht erst die DB hochgefahren werden muss. Wird aber eher minimal sein.

----------

## toralf

 *flammenflitzer wrote:*   

> Hat das schon jemand ausprobiert?

 Läuft bei mir problemlos (mostly stable Gentoo).

----------

## Klaus Meier

 *flammenflitzer wrote:*   

> Vorteil ?

 KDE4 geht doch nicht ohne mysql. Warum da noch mal eine Datenbank im amarok. Und wenn man es halt anders nutzt, dann braucht man eine Datenbank.

----------

## schachti

Wieso braucht KDE4 MySQL? Sowohl equery depends mysql als auch die "Reverse Deps"-Suche auf gentoo-portage.com zeigen keine Abhängigkeit von KDE4 von MySQL...

----------

## Klaus Meier

 *schachti wrote:*   

> Wieso braucht KDE4 MySQL? Sowohl equery depends mysql als auch die "Reverse Deps"-Suche auf gentoo-portage.com zeigen keine Abhängigkeit von KDE4 von MySQL...

 Keine Ahnung, als ich mit KDE4 angefangen hat, da hat mir irgendwas gesagt, dass ich dieses Flag setzen muss und seit dem habe ich es immer drin. Habe es jetzt raus genommen, aber es gibt bei mir eine ganze Liste, die mysql wollen, also ohne komme ich nicht hin.

equery d mysql ergibt: 

```
 * These packages depend on mysql:

dev-db/libdbi-drivers-0.8.3-r1 (mysql ? virtual/mysql)

dev-libs/apr-util-1.3.9 (mysql ? =virtual/mysql-5*)

dev-libs/cyrus-sasl-2.1.23-r1 (mysql ? virtual/mysql)

dev-libs/redland-1.0.10-r2 (mysql ? virtual/mysql)

dev-perl/DBD-mysql-4.01.3 (virtual/mysql)

x11-libs/qt-sql-4.6.2 (mysql ? virtual/mysql)
```

Eventuell kann man da ja noch was entfernen.

----------

## flammenflitzer

Ich habe mit mysql keine Erfahrungen. Kann jemand einfach posten, wie ich das für Amarok einrichte. bei mir funktioniert es nicht.

http://amarok.kde.org/wiki/MySQL_Server

----------

## XMath

Hi,

schaust du mal hier.

Das hat bei mir wunderbar geklappt.

Zum Schluß nur noch mysql in das gewünschte runlevel einfügen (rc-update add mysql ...).

HTH

----------

## flammenflitzer

flammenflitzer lib # emerge --config =dev-db/mysql-5.0.84-r1

Configuring pkg...

 * Creating the mysql database and setting proper

 * permissions on it ...

 * Insert a password for the mysql 'root' user

 * Avoid ["'\_%] characters in the password

  >mein-mysql

* Retype the password

  >mein-mysql

. * Loading "zoneinfo", this step may require a few seconds ...

 * Stopping the server ...

 * Done

flammenflitzer olaf # /etc/init.d/mysql start

mysql                     | * Starting  ...

mysql                     | * Starting  (/etc/mysql/my.cnf)        [ ok ]

flammenflitzer olaf # /usr/bin/mysqladmin -u root -h localhost password abcdefghi

/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: NO)'

flammenflitzer lib #

----------

## franzf

mysql -u root -p

-> dein passwort eingeben

-> und schon hast du die mysql-Konsole.

Keine Ahnung was der mysqladmin anderes macht...

----------

## flammenflitzer

Nachdem mir mysql die Festplatte vollgemüllt hat, ist es auch so, das ich in conky sehe, wie beim Abspielen von Musik mit Amarok mysqld alle paar Minuten die Nummer 1 mit bis zu 50% CPU Last ist. Das gefällt mir nicht.

----------

## Schinkencroissant

Hallo!

Um vielleicht noch etwas zu der Verwirrung mit den Vorteilen beizutragen, soweit ich das sehe, braucht KDE 4 kein MySQL, aber:

Amarok verwaltet die ganze Sammlung in einer Datenbank, entweder was kleines eingebautes oder eben MySQL.

Akonadi verwaltet sämtliche Daten in einer Datenbank, entweder eine mit eingebaute oder eben MySQL.

Sicher lässt sich diese Liste noch fortsetzen, aber sollte klar so sein. Wenn jetzt jedes Programm, das gestartet wird, in jeder Instanz (mehrere Benutzer zum Beispiel) sein eigenes DBMS (auch wenn es schlank und auf die Anwendung optimiert ist) startet, kommt schon eine ganze Menge zusammen. MySQL ist zwar sicher etwas größer als die einzelnen Lösungen, aber zum Einen ist es bereits etwas optimierter, da in diesem Projekt nunmal nur die Datenbank selbst das Thema ist und nicht, wir basteln mal schnell eine Datenbank für unser Programm, das eigentlich was ganz anderes tut (überspitzt formuliert) und zum Anderen muss auch immer nur eine Instanz laufen und alle Programme und alle Benutzer können darauf zugreifen.

Alle Klarheiten beseitigt?

Wünsche weiterhin viel Spaß und hoffe, jemand kann was mit dem anfangen, was ich gerade geschrieben habe ;-)

Schinkencroissant

P.S.: Wenn wir gerade dabei sind, ich bin auch dabei, nach und nach Programme von ihren mitgebrachten Datenbanken zu trennen und Amarok und Akonadi sind mir selbst direkt eingefallenl, was fällt Euch denn noch so ein?

P.P.S.: Zu Akonadi noch ein kleiner Nachtrag, dort sieht es sogar so aus, Akonadi nutzt gar keine eingebaute kleine Datenbank, die dann wie bei Amarok in einer einzelnen Datei irgendwo rumfliegt, sondern eine eigene Instanz von MySQL oder eben einen bereits laufenden MySQL-Server. In den Einstellungen hat man nämlich die Optionen internes oder externes MySQL.

----------

## flammenflitzer

Kannst du mal posten, wie man den akonadi server einrichtet mit  externem MySQL? Ich habe das gefunden

```
root PW von mysql bekannt (sonst eins vergeben)? CREATE DATABASE akonadi; USE akonadi; GRANT ALL ON akonadi .* TO akonadi@localhost IDENTIFIED BY 'HIER DAS PASSWORT FÜR AKONADI'; FLUSH PRIVILEGES;

Akonadi Einrichtung aufrufen (Alt+F2 und akonadi eintippen) und Server stoppen, /home/WHOAMI/.local/share/akonadi/ Verzeichnis löschen

Bei der Akonadi Einrichtung bei Optionen entfernt: UNIX_SOCKET=/home/WHOAMI/.local/share/akonadi/db_misc/mysql.socket und Nutzer und PW für externe Datenbank eingetragen

Akonadi-Server wieder Starten

Kontact aufgerufen und neuen Kalender importiert (*.ics).
```

----------

## Schinkencroissant

Hatte bis eben noch ein anderes Problem und bin deshalb erst jetzt wieder dran an der Sache. Eigentlich wollte ich mit Amarok anfangen und der ist noch nicht fertig gebaut.

Was Du da gefunden hast, sieht aber mal meiner Meinung nach relativ gut aus, allerdings unter der Voraussetzung, dass bei Dir bereits eine MySQL-Instanz läuft, wenn Akonadi gestartet wird (runlevel, siehe Einrichtung Amarok, der Link von eben von XMath).

Mehr kann ich auch erst sagen, wenn mein Amarok fertig ist.

Grüße,

Schinkencroissant

P.S.: Was mich gerade noch interessieren würde, warum ausgerechnet Amarok 2.2.2.90? Hat sich da zur Vorgängerversion grundlegend was verändert oder ist das einfach für Deine Architektur die aktuell stabile Version? Bei mir ist das nämlich noch 2.2.2-r1.

----------

## Schinkencroissant

Noch ganz interessant dazu mal die Frage, wofür ist eigentlich bei MySQL selbst das embedded USE-Flag gut?

Grüße,

Schinkencroissant

----------

## mastacloak

Dabei hilft euse:

```
$ euse -i embedded

[-    ] embedded (dev-db/mysql):

Build embedded server (libmysqld)

...

[-    ] embedded (media-sound/amarok):

Use libmysqld, MySQL embedded server library. ...

```

Erst das Bauen von mysql mit embedded USE-Flag ermöglicht das Nutzen selbiger Bibliothek.

Gruß

----------

## Schinkencroissant

Sorry, jetzt bin ich leicht verwirrt.

Heißt das jetzt, ich muss mysql mit dem embedded Flag bauen, damit Amarok die embedded Datenbank benutzen kann, wenn ich aber Amarok mit -embedded baue, brauche ich das Flag bei mysql auch nicht mehr?

Habe übrigens noch ein Programm entdeckt:

Krecipes kann auch MySQL oder Postgres alternativ zu etwas Eingebautem nutzen.

Grüße und noch einen schönen Restfeiertag,

Schinkencroissant

----------

## franzf

 *Schinkencroissant wrote:*   

> Heißt das jetzt, ich muss mysql mit dem embedded Flag bauen, damit Amarok die embedded Datenbank benutzen kann, wenn ich aber Amarok mit -embedded baue, brauche ich das Flag bei mysql auch nicht mehr?

 

Tja, für sowas gibt es ein wunderbares Nachschlagewerk, das schimpft sich portage-tree  :Razz: 

Ich zitiere mal aus dem amarok-ebuild:

```
embedded? ( <dev-db/mysql-5.1[embedded,-minimal] )
```

amarok [+embedded] verlangt mysql mit embedded-USE-Flag gebaut.

Es braucht für das embedded-mysql eine eigene Bibliothek, um das Feature nutzen zu können. Normalerweise braucht es nur eine recht kleine client-Lib, die für die Kommunikation Server<->Programm benutzt wird. Für embedded brauchst du halt auch noch den eigentlichen Server-Code. Das steckt dann in "libmysqld".

BTW: amarok ist sicher nicht das einzige Programm, welches man mit dem embedded-mysql verwenden kann. Eigenkreationen nicht mit einberechnet  :Wink:  Also kann ein mysql-embedded auch ohne amarok-embedded nützlich sein.

----------

## Schinkencroissant

Hallo,

also mein mysql ist weiterhin mit embedded-Flag gebaut und ich habe jetzt mal unter meinem 64-bit Gentoo versucht, den aktuell stabilen (2.2.2-r1) Amarok mit -embedded zu bauen. Beim Bauen selbst gab es auch keine Probleme, jedoch jedes mal, wenn ich versuche, Amarok zu starten, bekomme ich eine Segfault-Meldung, noch bevor ich irgendetwas tun kann.

Ich vermute eigentlich, dass es nicht an Amarok selbst liegt, hat jemand eine Idee? Wahrscheinlich irgend ein Fehler, weil er noch auf die eingebettete Datenbank eingestellt ist. Eigentlich sollte er sich jetzt einfach starten lassen, damit ich danach einfach den externen mysql-Server in den Einstellungen angeben kann.

Viele Grüße,

Schinkencroissant

----------

## flammenflitzer

Kann man in der Version von Hause aus schon extern mysql nutzen? Ich dachte das geht erst ab späteren Versionen.

----------

## Schinkencroissant

Also bei mir sieht es so aus, dass ich mit -embedded kompiliert Amarok gar nicht erst starten kann (Version 2.2.2-r1), wenn ich ihn aber mit embedded baue, dann lässt er sich normal benutzen, ich kann allerdings trotzdem in den Einstellungen einen externen SQL-Server einstellen.

Grüße,

Schinkencroissant

----------

## franzf

@Schinkencroissant:

Schon mal die config gelöscht/verschoben? -> ~/.kde4/share/config/amarokrc

Ansonsten emerge gdb und dann

```
gdb amarok

[...]

(gdb) run

[...warten...]

[...crashen lassen...]

(gdb) bt
```

Und das dann posten.

Ich nehme nicht unbedingt an, dass es am amarok [-embedded] liegt. Hatte die Umstellung hier auch und musste dann nur die mysql-Einstellungen neu machen und alles lief. Auch wenn kein mysql-Server läuft oder dein User noch nicht eingerichtet ist führt das Seitens amarok noch nicht zum Crash.

@flammenflitzer:

Was heißt bei dir "extern mysql"? embedded ist ein jüngeres Feature, MySQL war schon immer ein Server, der extern (also außerhalb der Applikation und unabhängig von selbiger) läuft - wenn du das damit meinst...

----------

## Schinkencroissant

OK, das Verschieben der amarokrc hat funktioniert. Ich habe Amarok eben nochmal mit -embedded gebaut, die Datei verschoben und Amarok gestartet, daraufhin wurde die Sammlung neu erfasst, die Datei neu angelegt und Amarok startete ganz normal.

Also somit dann auch von mir die Meldung, -embedded mit Amarok 2.2.2-r1 funktioniert. Leider habe ich keinen Ton mehr, was allerdings wohl ein Phonon-Problem ist, wenn ich das richtig verstanden habe, aber Amarok lädt die Sammlung korrekt und auch über die Konsole einfach mal die Datenbank durchsuchen hat auch ganz ordentlich ausgesehen.

Grüße,

Schinkencroissant

----------

## Max Steel

Bei mir crasht immer das Wikipedia oder das Liedtext Plugin, wodurch der Amarok komplett crasht. Schalt ich das aus läufts.

----------

