
Technically, I don’t really need the my.cnf file and can just start a server with default options, but I’ll try to play it by the book here.Įdit the my.cnf file so that the datadir option now points to the current location of the mysqle directory. $ cp ~/.kde4/share/apps/amarok/my.cnf /path/to/db/ $ cp -r ~/.kde4/share/apps/amarok/mysqle/ /path/to/db/ Let’s make a copy of this data directory and connect to that instead. While it’s probably quite safe to connect to the live database, I’d rather not chance any corruption of the data. The config options for the server are helpfully recorded in a my.cnf file in the parent directory. In order to connect to this database, we need to launch a MySQL (mariaDB, I mean) server and connect through a MySQL/mariaDB client. Right away, we can tell that this is a MySQL database and probably uses the MyISAM storage engine. The file system looks familiar and contains a single database called amarok, composed of several tables. Knowing the above, let’s take a look at how Amarok stores its internal data in ~/.kde4/share/apps/amarok/mysqle/. There are other storage engines, but that goes a bit beyond the scope of this post. MYI file to store the indices of that table and a. frm file to store the structure of the table, a. frm file, one for each table, containing the structure and the data stored in that table. The default, InnoDB storage engine creates just a. The storage engine is what processes the SQL queries and organizes how the data is stored and retrieved.ĭepending on the storage engine, the contents of the database sub-directory can look quite different. To manage each database, MySQL allows the database to specify its storage engine. The MySQL server may have users and permissions defined, limiting or granting access to various databases in granular detail. The server operates on a “data directory” where each database lives in a sub-directory. MySQL uses a server process to guard access to the databases it manages. Relational databases may be comprised of several tables, each expressing a new relation between the various attributes.Įach tuple in a relation must either have a unique attribute or set of attributes, called a key to identify it uniquely.įinally, the SQL in the name refers to the Structured Query Language, a way to formulate all interactions (create/retrieve/update/delete) with the database management system. Relational databases are comprised of many tables/relations.Įach row/tuple in a relation/table represents a relationship between the columns/attributes of the relation. MySQL is one of the programs that can be used to manage something called a relational database. I’ll first begin with a description of Amarok’s database, then move on to the relatively simpler schema used by Clementine and Rhythmbox. I have briefly used Rhythmbox on my laptop in the past, but quickly abandoned it for Clementine. I regularly use Amarok on my desktop, and Clementine on my laptop. Rhythmbox is unrelated to the two projects and uses an XML data store. In its 2.x form, these options have been whittled down to just MySQL.Ĭlementine, its cousin-by-fork, also whittled down its options, but selected SQLite, instead. Let’s take a look at the possible ways in which they might go about doing that.įor this purpose, I’ll look at the databases used by three music players, Amarok, Clementine and Rhythmbox.Īmarok, in its 1.x days, used to offer a choice between SQLite, MySQL, or PostgreSQL as the database backend. If there are no answers, it doesn't mean we don't care about your feature request/bug.Music managers deal with lots of data and metadata relating to one or more music libraries they manage.
#Clementine music player abandoned how to
In case there isn't, you can open a new issue with an explicit title and as much information as possible (OS, Clementine version, how to reproduce the problem.).If there already is an open issue you could comment on it to add detail about the problem or confirm it.Check if another person has already opened the same issue to avoid duplicates.If it works fine even though you see an open issue, please comment on it and explain that the issue has been fixed. Try the latest build ( ) to see if any bug is still present.Instead, you can subscribe to the issue to be notified of anything new about it If there is already an opened issue there is no need to comment "+1", it won't help.Check if another person didn't already open an issue.Check if the new feature is not already implemented (Changelog).Clementine is a modern music player and library organizer for Windows, Linux and macOS.
