Summary: | import of amarok 1.4 mysql db fails | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Matthias Adrian Mendler <matthias.mendler> |
Component: | Collections/Local | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andreas-stangl, bbuhrer, brunovern.a, burkhard.vogel, copong, dk, edward.hades, erik, f.esser, husey, hydrogen, jo, l.jirkovsky, lfranchi, mfraz74+kde, mkyral, nils, rudd-o, ruiz, salsicha, seajey.serg, sharpshopter, simon, stefan.neupert, stellplatz-nr.13a, stuffcorpse, tukozaki |
Priority: | HI | ||
Version: | 2.1.1 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Addresses the possibility that there may not be a valid database
avoids crash and provides more debugging for 0 tracks imported |
Description
Matthias Adrian Mendler
2008-11-04 17:14:25 UTC
Oh, and that's what the terminal says when I try to import the (existing) amarokdb: http://www.nopaste.com/p/aMRUG1LEc Make sure that you can connect to the mysql database using the command line. Something along the lines of: mysql -U root -h localhost -p amarokdb If you cannot connect with the mysql tool then there is no way that Amarok is going to be able to. I'll take a look into the crashes also. Hi sorry I reply this late... I can connect with "mysql -u root -h localhost -p amarokdb" - at least I don't get any error messages. matyy@inquisitor:~$ mysql -u root -h localhost -p amarokdb Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 53 Server version: 5.0.67-0ubuntu6 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> (In reply to comment #3) > Hi sorry I reply this late... > > I can connect with "mysql -u root -h localhost -p amarokdb" - at least I don't > get any error messages. > > matyy@inquisitor:~$ mysql -u root -h localhost -p amarokdb > Enter password: > Reading table information for completion of table and column names > You can turn off this feature to get a quicker startup with -A > > Welcome to the MySQL monitor. Commands end with ; or \g. > Your MySQL connection id is 53 > Server version: 5.0.67-0ubuntu6 (Ubuntu) > > Type 'help;' or '\h' for help. Type '\c' to clear the buffer. > > mysql> > I have the same problem I can confirm this bug as well. Gentoo ~amd64, kde 4.1.80, mysql-5.0.72 amarok-1.98 or amarok compiled from actual svn - the same error Error: Could not open Amarok 1.4 database: Unknown database 'amarokdb' QMYSQL: Unable to connect Failed: Unable to import statistics I found only these interesting lines in terminal Object::connect: No such signal QComboBox::textChanged(int) Object::connect: (sender name: 'kcfg_ExternalBrowser') Object::connect: (receiver name: 'settings') Object::connect: No such signal DatabaseImporter::importFinished() Object::connect: No such signal DatabaseImporter::importFinished() QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed. Database exists and is accessible: ---------------------------------- [21:21:59 marian@gool ~]$ mysql -u amarok -p -h localhost -p amarokdb Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.70-log Gentoo Linux mysql-5.0.70 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show tables; +--------------------+ | Tables_in_amarokdb | +--------------------+ | admin | | album | | amazon | | artist | | composer | | devices | | directories | | embed | | genre | | images | | labels | | lyrics | | playlists | | podcastchannels | | podcastepisodes | | podcastfolders | | related_artists | | statistics | | tags | | tags_labels | | uniqueid | | year | +--------------------+ 22 rows in set (0.00 sec) mysql> select count(1) from album; +----------+ | count(1) | +----------+ | 422 | +----------+ 1 row in set (0.00 sec) mysql> exit Targetting this for 2.0 as it looks fairly important. It may have to wait for 2.0.1, however. Created attachment 29184 [details]
Addresses the possibility that there may not be a valid database
Since driverName can return a null QString, it probably should be checked. And then a null QSqlDatabase should be returned in databaseConnection(). This patch does that just in case.
The original pastebin is from a amarok before I stuck in a bunch of initialization fixes. So it doesn't reflect the current state of amarok. Is it possible for someone to get another backtrace with the latest from trunk? If it still crashes, please try the newly attached patch. I am concerned that we make connection calls on what is a null QSqlDatabase. BTW, I shortened the conditional for making the connection. But I did that just to save space. If this patch is applied. Feel free to drop that change since it provides nothing for the fix. Just installed today's Amarok 2.0 release packages (Kubuntu 8.10, KDE 4.2 beta). If I try to import my old Amarok 1.4 database from MySQL, the import tool gets stuck at message "Importing downloaded album art". If I disable album art importing, it sometimes finishes with "Success: Imported 0 tracks", sometimes it just crashes. I know this may be asking a lot. But would it be possible to run Amarok in gdb and then try to import. When it gets stuck on "Importing downloaded album art" crash it out and get a backtrace. Otherwise, sending a backtrace to the crashes you see are also helpful. You get bonus points for trying out the patch attached to this bug to see if it has any effect. Note that you will have to start amarok in gdb with "run --nofork". Otherwise the output will be useless. Also, you need to install an Amarok-debug package first. I tried the 2.0 release today and it still has this bug. In my case I have no crashes. It just reports "success, imported 0 tracks" no matter what I enter into this import dialog (existing databases, non-existing, correct password, wrong password, existing users, non-existing users) connecting to mysql-server via commandline works flawlessly. Amarok 1.4 uses this db. mysql server is 5.0.70. Can you tell a little more how to get the information you need for debugging this? I'm using gentoo, gdb is here, I know how to compile amarok with "debug use flag" as it is called in gentoo. So, what do you need ? Thanks a lot and all the best Unfortunately, the debug USE flag has nothing to do with debug symbols :-( http://www.gentoo.org/proj/en/qa/backtraces.xml hmm, have to step into this line here too, no import possible using mysql telling me just "success, imported 0 tracks" OK, I installed Ubuntu package "amarok-kde4-gdb" and ran it in gdb. First, I tried to import my old collection, when it got stuck at "Importing downloaded album art", I killed it with Ctrl+C and got a backtrace: http://www.nopaste.com/p/aGhxUB43V The last thing it said in the console was "Object::connect: No such signal DatabaseImporter::importFinished()", so maybe it's just the same problem like "Success: 0 tracks found", but with missing "Success" message? After that, I tried again with disabled "Import album art"-checkbox. First, I gave a nonexisting database name ("foobar"). No crash, just a perfectly normal message "Database not exist: foobar" error message. But, clicking the "back" button and changing the db name to the correct one still produced the very same message with the old database name. So there's also some little work to do. Restarting the import tool, this time giving the correct database name and also disabling "Import album art", Amarok crashed: http://www.nopaste.com/p/a9hqD11I5 Ah, and by the way, I have two non-amarok related tables in my amarok database (don't ask why...). This shouldn't be a problem? Created attachment 29275 [details]
avoids crash and provides more debugging for 0 tracks imported
Same crash avoidance code. No changes there.
The new code attempts to figure out why we would even need to avoid the crash. Why do we not get the right enum for the database. In the tradition of using a chainsaw when a butter knife would do the new function code attempts to discover the problem at every function call.
Also there should be a print out of every track that is not imported so we can have a better understanding of what the collection manager can't find.
SVN commit 896162 by markey: New patch from Erik Hovland that attempts to fix the Amarok 1.4 collection importer. Please test! CCBUG: 174269 M +18 -1 FastForwardImporterConfig.cpp M +8 -3 FastForwardWorker.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=896162 A new report from our forum: <quote> I had the same problem importing Amarok 1.4 DB that show "Success: Imported 0 tracks" message. I installed amarok 2.0 (build date: dec 10 2008) from debian experimental repository. My db was in mysql-server 5.0.67-2 at localhost, and id, password, database name was alright when I test with mysql-client. While I read this thread, I got an idea when Seb Ruiz said... Quote from: Seb Ruiz on November 24, 2008, 07:13:29 AM I didn't have any problems running the importer. The database was, however, on another machine. So I put my real host name in the "Hostname" field of the "Import Collection" dialog, instead of "localhost" which was the default value. And it worked! </quote> Source: http://amarok.kde.org/forum/index.php/topic,15931.msg25042.html#msg25042 yeah - 127.0.0.1 instead of localhost did the trick, never thought the dns resolution would be the cause So, Seb, looks like we finally nailed this bugger down :) wonderful, what an obscure bug. thanks for all the effort. I'll get a fix in by 2.0.1 Did the fix get in by 2.0.1.1? Running it in Kubuntu 8.10 and I get the same as previous users. "localhost" yields "Failed: No tracks were imported" "127.0.0.1" or my hostname make amarok crash, with this console output: X Error: BadWindow (invalid Window parameter) 3 Major opcode: 20 (X_GetProperty) Resource id: 0x3801a94 Object::connect: No such signal DatabaseImporter::importFinished() QSocketNotifier: Invalid socket 50 and type 'Read', disabling... KCrash: Application 'amarok' crashing... sock_file=/home/luis/.kde/socket-ordenata/kdeinit4__0 amarok: Fatal IO error: client killed If I check the "import downloaded album art" thingy in combination with "localhost", it stays there forever, I see no hdd activity and sometimes says it can't copy a particular file (opening said file on gwenview reveals an album cover). Doing the same with either the local loop or my hostname, same crash. If someone lets me know how to use gdb as if I was thick I can produce a backtrace, amarok-kde4-dbg is already installed. I am using - Fedora 10 - MySQL 5.0.67 - KDE 4.1.3 - Amarok 2.0.1 First I tried with "localhost", it failed but didn' crash, so I tried with "127.0.0.1" and it failed again. I closed amarok. I relaunched Amarok and tried directly with "127.0.0.1" ... it worked ! Thanks (In reply to comment #23) > I am using > - Fedora 10 > - MySQL 5.0.67 > - KDE 4.1.3 > - Amarok 2.0.1 > > First I tried with "localhost", it failed but didn' crash, so I tried with > "127.0.0.1" and it failed again. > I closed amarok. > I relaunched Amarok and tried directly with "127.0.0.1" ... it worked ! > > Thanks > This works for me too!!! @Seb: Is the "localhost" issue already fixed in trunk? Seems pretty simple to fix, no? I also get the crashes and changing to 127.0.0.1 doesn't seem to matter. KCrash: Application 'amarok' crashing... sock_file=/home/chris/.kde/socket-kubuntu-chris/kdeinit4__0 amarok: Fatal IO error: client killed @Mark: It's not currently fixed in trunk -- this is more than anything a workaround which masks the original problem. I'd like to do a little more investigation on the issue before simply doing a switch between localhost and 127.0.0.1. My feeling is that it might be a Qt bug. (In reply to comment #24) > (In reply to comment #23) > > I am using > > - Fedora 10 > > - MySQL 5.0.67 > > - KDE 4.1.3 > > - Amarok 2.0.1 > > > > First I tried with "localhost", it failed but didn' crash, so I tried with > > "127.0.0.1" and it failed again. > > I closed amarok. > > I relaunched Amarok and tried directly with "127.0.0.1" ... it worked ! > > > > Thanks > > > > This works for me too!!! > The importation works, but the music score is all wrong and the album cover import fails! I'm still not able to import my old collection. It not crash, it is doing something, but then No tracks imported. It doesn't matter whether I use localhost or 127.0.0.1, restart Amarok or not. :-( Kde 4.2 final, Mysql 5.0.72-r1, Amarok 2.0.1.1 Still the same problem with amarok Version 2.0.1 Using KDE 4.2.00 (KDE 4.2.0) "release 93" openSUSE 11.1 Using localhost results: Importing downloaded album art Failed: No tracks were imported Using 127.0.0.1: Error: Could not open Amarok 1.4 database: Can't connect to MySQL server on '127.0.0.1' (111) QMYSQL: Unable to connect Failed: Unable to import statistics The MySQL access data are definitly correct. Problem still exists in latest kubuntu jaunty: Using kde 4.2.1, amarok 2.0.2, mysql 5.1.30 Object::connect: No such signal DatabaseImporter::importFinished() in /build/buildd/amarok-2.0.2mysql5.1.30/amarok-2.0.2/src/databaseimporter/DatabaseImporter.cpp:36 localhost / 127.0.0.1: Importing downloaded album art Failed: No tracks were imported SVN commit 937666 by seb: Replace "localhost" with 127.0.0.1 when importing from Amarok 1.4 mysql databases. CCBUG: 174269 M +2 -1 DatabaseImporter.cpp M +7 -1 amarok14/FastForwardImporter.cpp M +1 -1 amarok14/FastForwardImporterConfig.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=937666 doesn't work for me with svn revision 938715 Connected to MySQL server 5.1.32-embedded Importing downloaded album art Failed: No tracks were imported nothing special in debug mode: amarok: BEGIN: void DatabaseImporterDialog::pageChanged(KPageWidgetItem*, KPageWidgetItem*) amarok: BEGIN: void DatabaseImporterDialog::selectImporter() amarok: END__: void DatabaseImporterDialog::selectImporter() - Took 0.014s amarok: END__: void DatabaseImporterDialog::pageChanged(KPageWidgetItem*, KPageWidgetItem*) - Took 0.014s amarok: BEGIN: void DatabaseImporterDialog::pageChanged(KPageWidgetItem*, KPageWidgetItem*) amarok: BEGIN: virtual void DatabaseImporter::startImporting() amarok: BEGIN: virtual void FastForwardImporter::import() amarok: END__: virtual void FastForwardImporter::import() - Took 0.00034s amarok: BEGIN: virtual void FastForwardWorker::run() amarok: END__: virtual void DatabaseImporter::startImporting() - Took 0.00064s amarok: BEGIN: QSqlDatabase FastForwardWorker::databaseConnection() amarok: END__: void DatabaseImporterDialog::pageChanged(KPageWidgetItem*, KPageWidgetItem*) - Took 0.0011s amarok: END__: QSqlDatabase FastForwardWorker::databaseConnection() - Took 0.042s amarok: END__: virtual void FastForwardWorker::run() - Took 0.87s amarok: BEGIN: void FastForwardImporter::finishUp() amarok: END__: void FastForwardImporter::finishUp() - Took 0.0011s Qt: 4.5.0 KDE: 4.2.1 (KDE 4.2.1) Amarok: 2.0.2 mysql Ver 14.14 Distrib 5.1.32, for mandriva-linux-gnu (x86_64) using readline 6.0 Mandriva 2009.1.0 0.5 cooker (2009.1 Spring) WM used: e17 Can log in amarok Mysql DB with 'localhost' (uname or 127.0.0.1 won't work): $ mysql -u root -h localhost -p amarok Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4802 Server version: 5.1.32 Mandriva Linux - MySQL Standard Edition (GPL) _snip_ mysql> show tables; +------------------+ | Tables_in_amarok | +------------------+ | admin | | album | | amazon | | artist | | composer | | devices | | directories | | embed | | genre | | images | | labels | | lyrics | | playlists | | podcastchannels | | podcastepisodes | | podcastfolders | | related_artists | | statistics | | tags | | tags_labels | | uniqueid | | year | +------------------+ Like others here i have tried to import my Amarok 1.4 DB (/me hoping with podcasts!) but with no luck. First tries, got an error about ('amarok --debug'): amarok(31795)/kio (KIOJob) KIO::SlaveInterface::dispatch: error 112 "/home/me/.kde4/share/apps/amarok/albumcovers/large/c75666efdc129f426ab637a818da0523" Thereafter I deleted ~/.kde4 and launched amarok2 again. This time looked like everything was goin well (no more error)... but at the end of the import the issues persist with nothing imported :-( have posted on the forum, post http://amarok.kde.org/forum/index.php/topic,16590.msg26962.html#msg26962 Tried with '127.0.0.1' and system's uname at least 3 times each but this way DB importer simply does not connect to MYSQL. i spent some time on this issue and it looks like my problem is based on a mysql library problem. i modified amarok/src/databaseimporter/amarok14/FastForwardWorker.cpp to get more debugging information: QSqlQuery::value: not positioned on a valid record amarok: QSqlError(2036, "QMYSQL3: Unable to bind outvalues", "Using unsupported buffer type: 3 (parameter: 3)" I have the VERY SAME PROBLEM... with PostgreSQL. Note that an older version of Amarok 2.x DID import my collection, but this 2.0.2 version doesn't. Screenshot: http://imagebin.ca/view/oZu-cH.html note that I cleaned my old configuration completely from the .kde dir, so it's not a problem with the old config. When is this going to be fixed??? For something as simple as this I would haev figured you would have provided extensive error handling, not a moronic "driver not loaded" error message with no explanation and that's it. FYI: ~@karen α: rpm -ql qt-postgresql /usr/lib64/qt4/plugins/sqldrivers/libqsqlpsql.so *** Bug 190200 has been marked as a duplicate of this bug. *** I've figured out the root of my problem: during migration from kubuntu 8.10 to kubuntu 9.04 I've remount partition with music collection files in another way. was: /media/data/Music/... became: /media/Data/Music/... So the data in amarok 1.4 db became incorrect. I've installed amarok 1.4 from PPA rebuilt collection with proper path and then reinstall amarok 2.1beta And now amarok had automatically detected and rescanned it without any manually importing. *** Bug 190200 has been marked as a duplicate of this bug. *** Hi, using latest packages from: http://amarok.kde.org/wiki/User:Apachelogger/Project_Neon trying to import the old collection, either with "localhost" or "127.0.0.1" yields: "Importing downloaded album art" "Failed: No tracks were imported" Kubuntu 9.04 AMD64 Linux 2.6.29.3, MySQL 5.0.75-0ubuntu10.2 I had an error like: Error: Could not open Amarok 1.4 database: Can't connect to MySQL server on '127.0.0.1' (111) QMYSQL: Unable to connect For me, the problem was that I run mysql with "skip_networking". I commented this out and restarted mysql, and then got a clean import. It's still a bug (amarok should be able to use unix domain sockets as well as TCP sockets), but this workaround may work for some people. @Matt: Interesting. Do you know how to fix this from the Amarok side? A patch would be welcome. I have never looked at amarok source before, and I don't even know how amarok connects to mysql (ie. using some QT or KDE API, or directly using mysql libs). Depending on how it's done, this may not be an amarok bug. I know amarok 1.4 works with unix domain sockets. My brief understanding of things is that unix domain sockets are used by default if the client asks to connect to "localhost", and this decision is made by the mysql client libraries. If the client asks to connect to "127.0.0.1" instead, then that forces the connection to be made using TCP. As I said before, my mysql daemon has "skip_networking" set, which means it only listens to a unix domain socket, and not on a TCP socket. This illustrates the issue (matt_amarok is the db name): $ mysql -h localhost matt_amarok -p Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.0.76-log Gentoo Linux mysql-5.0.76-r1 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. $ mysql -h 127.0.0.1 matt_amarok -p Enter password: ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111) I'm also working with beta 2 of 2.1 and have never tried 2.0.x Thanks, it partially helped. I also had to add mysqld : 127.0.0.1 : ALLOW to my /etc/hosts.allow But then it works like a charm. ubuntu 9.04 amarok 2:2.0.2mysql5.1.30-0ubuntu3 AMD64 -- hi, I changed "localhost" to 127.0.0.1 in the import menu in amarok. Also changed /etc/hosts.allow (see#44). Still getting the error: "Importing downloaded album art" "Failed: No tracks were imported" Logging into mysql, I see that skip_networking is set to OFF. Also, in mysql there's no difference in the output, whether I use "127.0.0.1" or "localhost" ------ :~$ mysql -u amarok -h 127.0.0.1 -p amarok Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.0.75-0ubuntu10 (Ubuntu) ------ :~$ mysql -u amarok -h localhost -p amarok Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.0.75-0ubuntu10 (Ubuntu) ------ If skip_networking is set to OFF, is that correct? Is there something else I can do? i have the same problem with mysql and the new amarok, please when i would can import my collection, thank you very much for this program and congratulations. I have the same issue with Kubuntu 9.04, Amarok 2.1.1, and MySQL 5.0.75, all from the Kubuntu packages. This is the only reason why I still use 1.4, as I have way too many ratings etc in the database and don't have time to rerate my music. Migrate stats from an old database: http://amarok.kde.org/forum/index.php/topic,16966.0.html Thanks for that workaround Julianon, but this won't do it. It's to migrate stats from a 2.x database to a 2.x database. (In reply to comment #49) > Thanks for that workaround Julianon, but this won't do it. It's to migrate > stats from a 2.x database to a 2.x database. I successful migrate from 1.4 to 2.1.1. I copy amarok 1.4 database from /var/lib/mysql/amarok and also I change sql sentence: REPLACE INTO new.statistics (url, createdate, accessdate, score, rating, playcount, deleted) SELECT nu.id, os.createdate, os.accessdate, os.percentage, os.rating, os.playcounter, os.deleted FROM old.statistics os inner join new.urls nu on (nu.rpath = os.url); My bad, gotta try that then :) Still, doesn't solve this bug though, don't want to be a pain but how come this is proving so difficult to fix? Surely core functionality needs sorting out before anything else? doesnt solve my bug either. my bug is that stats from files outside the collection are not imported. this is a pretty major bug. I took a look at the source code (FastForwardWorker.cpp) and added some more debug messages for me. After #121 "QSqlQuery query = db.exec( sql );", query.size() returns about 5000 rows found. Nevertheless each of query.first(), query.next() or query.seek() fails to get me a valid internal cursor position, so query.at() always reports -1 (meaning QSql::BeforeFirstRow). query.lastError() tells me "QMYSQL3: Unable to fetch data". Since query.next() is alway false, the for-loop in #126 never runs and no tracks are imported. So the problem has to be somewhere in the MySQL section. Strangely enough, if I take the same commands like in FastForwardWorker.cpp and put them into a small QT testing app (using hardcoded database connection settings), no error occurs and query.next() sets the cursor to a valid position. Importing data from a mysql collection doesn't work, is that still the case? I use an up-to-date Jaunty Kubuntu (Amarok 2.1.1, KDE 4.2.2 and mysql 5.0). All my ratings and things are gone... Seb, any news on this? Comments #43 and #44 seems to indicate a solution. Changed target and moved to high priority... Hi all, I really do miss my ratings. Got ~65000 songs in my Amarok and no hint what I tagged some years ago. Where's my hit parade, Dude :( Does anybody have a hint what I needed to retrieve from the former MySql table and shove into the new one? Any help would be highly welcome. Cheers, Steff OK, I don't give up. Tried again to import my collection from Amarok 1.4 and had an eye on the thread running on the old MySql-DB... It shows the statement running. When I run the same statement in the query browser, it stops after a while, saying: "! 2014: Commands out of sync; you can't run this command now". Ok, googling a bit shows: "The error can occur in recent versions of PHP when you connect with mysql_pconnect(). Using mysql_connect() instead makes the problem go away." Hm, PHP? Well do you? Then, there's more: http://bugs.php.net/bug.php?id=47504 Some others report this error if there are NULL values in the list where this is not expected... Some others report this error if a semicolon is missing in the statement... Some others report this error if a return-value is too long and blows the field... MySql says: http://dev.mysql.com/doc/refman/5.1/de/commands-out-of-sync.html Does that help? Cheers, Steff Changed version to latest tested. I recently have changed the FastForwardWorker to use mysql++ instead of QT to access the Database.
It was quite a Quick&Dirty Hack (I commented out some exception trows in mysql++, since the compiler complained otherwise...), but it worked.
I changed no queries, I only used other functions to talk to the database and fetch the results.
> MySql says: http://dev.mysql.com/doc/refman/5.1/de/commands-out-of-sync.html
Hmm, out of sync? Could that have something to to with multi tasking? (wild guess)
Found a solution to this problem: went back to Amarok 1.4. I have the same problem, just getting "Failed: No tracks were imported". Quite a workaround is converting your mysql-db to sqlite. I did so using the following steps: 1. Create an output.db using: $ sqlite3 output.db and then inserting the statements (CREATE TABLE...) listed here: http://amarok.kde.org/wiki/MySQL_HowTo#Amarok_1.4.8_and_MySQL_5.0.45 then just exit sqlite using ".quit". 2. Use the following script to convert your mysql-db to the created sqlite-db: http://forums.mysql.com/read.php?145,68269,92627#msg-92627 now you can import the output.db with amarok2. The only thing I'm still missing is that "First played" won't be imported for none of my tracks. cheers Thanks for your workaround, but until such basic things don't work, I don't see myself updating to Amarok 2. Yeah! Me too, I went back to amarok 1.4, almost year ago I think! I was compiling RPMs for amarok 1.4 until the kde-redhat project clued up to the fact that serious music lovers are having serious trouble moving to amarok 2 / using amarok 2, and they started making an amarok1 RPM. And with that, all my problems were solved -- I no longer have to rebuild RPMs or lock the package in my package manager. You can now mark this bug as closed! *** Bug 204289 has been marked as a duplicate of this bug. *** Today I tried again to import my old 1.4 database with the latest version compiled from git and — IT WORKED! Could it be that this nasty bug finally got fixed?!? Well, since nobody reacted on this, I guess this is fixed in Amarok 2.2. Additionally, 2.2.1 will bring some more fixes :) No, it is MOST DEFINITELY NOT FIXED. I installed Amarok 2.2 and the import of the data failed (from PostgreSQL). It hangs in there for a while and then it says that the import failed in red letters. The console output said something of "cannot execute '' SQL statement" or something. I do not remember exactly what happened, but I do know it doesn't work. If anyone cares to have my music database to test the import, I will be more than glad to share it. But I am done testing Amarok 2.2 myself until this is fixed and honestly the last time I came to the IRC channel to talk about this issue I was chased away by some asshole, so it's not like I have a great incentive to help fix the bug anyway. (In reply to comment #68) > No, it is MOST DEFINITELY NOT FIXED. I installed Amarok 2.2 and the import of > the data failed (from PostgreSQL). It hangs in there for a while and then it > says that the import failed in red letters. The console output said something > of "cannot execute '' SQL statement" or something. Well, then open a new bug about PostgreSQL, this one was about MySQL and a crash. Not the same... @Manuel: Please read more carefully. I said "for Amarok 2.2.1." We do have a fix for Postgres in the pipeline, so please wait for this release, or check out Amarok from Git master. I just verified with amarok2.2.1 (openSUSE 11.1 / 11.2; KDE 4.3.3) that this bug is _not_ fixed. Import collection -> amarok 1.4 -> MySQL (I double checked that the DB access data is correct). Result: Error: Could not execute import query: Failed: Unable to import statistics (In reply to comment #71) > I just verified with amarok2.2.1 (openSUSE 11.1 / 11.2; KDE 4.3.3) that this > bug is _not_ fixed. > > Import collection -> amarok 1.4 -> MySQL (I double checked that the DB access > data is correct). Result: > > Error: Could not execute import query: > Failed: Unable to import statistics Did you try adding an entry in hosts.allow as comment #44? This has worked for me for a long time. > Did you try adding an entry in hosts.allow as comment #44?
> This has worked for me for a long time.
No, I did not because IF TCP wrappers configuration or any network misconfiguration would be the problem here THEN
- verifying the MySQL access credentials would fail
- amarok1.4 would fail
The only thing which fails is importing the collection int amarok 2.2.1
The feedback provided by the "Import collection" dialog seems bogus: After giving the hostname "l33t" (which works fine for connecting on the shell) I get Error: Could not open Amarok 1.4 database: Can't connect to MySQL server on 'l33t' (111) QMYSQL: Unable to connect Choose "Back" in the dialog, change Hostname to eg. "localhost" (which in this case maps to the same server, Next: Error: Could not open Amarok 1.4 database: Can't connect to MySQL server on 'l33t' (111) QMYSQL: Unable to connect Now: either the message is wrong or (more likely) the whole import dialog code is ignoring settings (like host name changes). This is so pathetic and this bug is definitly _not_ resolved. Jo: You also need to comment out the skip_networking in my.cnf Doh, my bad. Seems that /etc/my.cnf has changed during upgradte to openSUSE 11.2 (which I did last WE). Import did work on a machine where MySQL server is locally installed. Just to clarify: Comment #71 and #73 are related to a different setup: I tried to import the 1.4 MySQL database on a machine which accesses the database on a remote server. Is it possible that such a setup isn't supported (eg. because MySQL is accessed via UNIX sockets)? |