Mysql/MariaDb database expert needs...

classic Classic list List threaded Threaded
50 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Mysql/MariaDb database expert needs...

Gilles Caulier-4
Hi all,

In my huge task of simplification of libraries puzzle, with current 5.0.0-beta implementation, i backported all libkface code in digiKam core, including database. Now digiKam 5.0.0 will not use libkface.

I review all database management code, included recognition database, factorized all when it's possible. I tested Sqlite implementation and schema, and all work fine.

Now recognition database is managed as thumbnails and core database : same place to store DB files, and same Sqlite engine.

As database code is common with other DB engines, this want mean that recognition DB can be managed with Mysql/MariaDB too.

So now, i started a tedious task : review all Mysql bugs, that i sorted this summer. The first task is to look into migration files :


And i must admit that i'm not an expert with MySql/MariaDB. So i need external expertise and help here.

The code from git/master is now fixed to reproduce 4.x mysql support, with same bugs of course.

There are 2 solutions to use MySql/MariaDb : internal or external (remote) server. 

In a first step, i would to start with the first one, which will be more simpler to test and run.

But before to continue, i would to know if there is somebody in this room who can help me in this task.

Thanks in advance

Best

Gilles Caulier

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Piter Dias

I use digikam under Windows and mysql as database (in a Linux box).

What do you need? Someone to test?

Enviado por TypeMail

Em 11 de nov de 2015, pelo 08:07, Gilles Caulier <[hidden email]> escrito:
Hi all,

In my huge task of simplification of libraries puzzle, with current 5.0.0-beta implementation, i backported all libkface code in digiKam core, including database. Now digiKam 5.0.0 will not use libkface.

I review all database management code, included recognition database, factorized all when it's possible. I tested Sqlite implementation and schema, and all work fine.

Now recognition database is managed as thumbnails and core database : same place to store DB files, and same Sqlite engine.

As database code is common with other DB engines, this want mean that recognition DB can be managed with Mysql/MariaDB too.

So now, i started a tedious task : review all Mysql bugs, that i sorted this summer. The first task is to look into migration files :


And i must admit that i'm not an expert with MySql/MariaDB. So i need external expertise and help here.

The code from git/master is now fixed to reproduce 4.x mysql support, with same bugs of course.

There are 2 solutions to use MySql/MariaDb : internal or external (remote) server. 

In a first step, i would to start with the first one, which will be more simpler to test and run.

But before to continue, i would to know if there is somebody in this room who can help me in this task.

Thanks in advance

Best

Gilles Caulier


Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-11 12:58 GMT+01:00 Piter Dias <[hidden email]>:

I use digikam under Windows and mysql as database (in a Linux box).

What do you need? Someone to test?

More than testing.

The main problem is the first step of migration from sqlite (the initial DB set at first run) to a local mysql (using internal server).

Currently the migration stop in the middle due to strange error reported by mysql (Mariadb here) :

[gilles@localhost database]$ mysql --version
mysql  Ver 15.1 Distrib 10.0.21-MariaDB, for Linux (x86_64) using readline 5.1

I suppose some ImmoDb incompatibilities with digiKam sql statements to create indexes (tables are created).

[gilles@localhost data]$ digikam
digikam.general: AlbumWatch use QFileSystemWatcher
digikam.general: DatabaseParameters: [ Type "QMYSQL", Name "digikam" (Thumbnails Name "digikam"); (Face Name "digikam"); ConnectOptions: "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket", Using an Internal Server; Username and Password: "root", ""] 
digikam.databaseserver: Waiting  10  seconds...stop: [ false ]
digikam.database: Loading SQL code from config file "/usr/share/digikam/database/dbconfig.xml"
digikam.database: Checking XML version ID:  false "3" 3 3
digikam.database: ConnectOptions  "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket"
digikam.databaseserver: Failed to use database "digikam"
digikam.databaseserver: Query error: "Unknown database 'digikam' QMYSQL: Unable to execute query"
digikam.databaseserver: Database error: "Can't connect to local MySQL server through socket '/home/gilles/.local/share/digikam/db_misc/mysql.socket' (2 \"No such file or directory\") QMYSQL: Unable to connect"
digikam.databaseserver: Trying to create database now...
digikam.databaseserver: Database was successfully created
digikam.database: Loading SQL code from config file "/usr/share/digikam/database/dbconfig.xml"
digikam.database: Checking XML version ID:  false "3" 3 3
digikam.database: SchemaUpdater update
digikam.database: No database file available
digikam.database: Failure executing query:
 "" 
Error messages: "QMYSQL: Unable to execute query" "Table 'mysql.proc' doesn't exist" 1146 2 
Bound values:  ()
digikam.database: Error while executing DBAction [ "CreateIndices" ] Statement [ "\n                    DROP PROCEDURE IF EXISTS create_index_if_not_exists;\n                " ]
digikam.databaseserver: At least service [ "org.kde.digikam.startup-8291" ] is using the database server
digikam.databaseserver: Waiting  10  seconds...stop: [ false ]

Can you reproduce this problem to a fresh account ?

Gilles Caulier

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Piter Dias
I created a new album in the linux box in order to reproduce the error. The internal server gave the same error messages that you got.

Then I created the databases in my MySQL server and tried to migrate. It worked like a charm. I don't know what the "Internal Server" is, but for sure it doesn't behave the same way a "regular" MySQL instance behaves.

What else could I do to help?

piterdias@microserver:~$ digikam -v
Qt: 4.8.6
KDE Development Platform: 4.13.3
digiKam: 4.14.0

piterdias@microserver:~$ mysql --version
mysql  Ver 14.14 Distrib 5.5.46, for debian-linux-gnu (x86_64) using readline 6.3



------------------------------------------- MIGRATION TO INTERNAL SERVER -------------------------------------------------

digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/digikam (core) Digikam::DatabaseParameters::defaultParameters: ConnectOptions  "UNIX_SOCKET=/home/piterdias/.kde/share/apps/digikam/db_misc/mysql.socket"
digikam(29920)/digikam (core) Digikam::SchemaUpdater::update: SchemaUpdater update
digikam(29920)/digikam (core) Digikam::SchemaUpdater::startUpdates: No database file available
digikam(29920)/digikam (core) Digikam::DatabaseCoreBackendPrivate::debugOutputFailedQuery: Failure executing query:
 ""
Error messages: "QMYSQL: Unable to execute query" "Table 'mysql.proc' doesn't exist" 1146 2
Bound values:  ()
digikam(29920)/digikam (core) Digikam::DatabaseCoreBackend::execDBAction: Error while executing DBAction [ "CreateIndices" ] Statement [ "
                    DROP PROCEDURE IF EXISTS create_index_if_not_exists;
                " ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/kdeui (KNotification) KNotificationManager::notificationClosed: 3
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]

----------------------------------------------------- MIGRATION TO REGULAR MYSQL DATABASE --------------------

digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::moveTo: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikam(29920)/khtml (caret) DOM::Selection::validate: Selection[ Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 ) 1 ] 0
digikam(29920)/khtml (caret) DOM::Selection::validate: [character:baseIsStart] true Position( 0x0 "null" : 0 ) Position( 0x0 "null" : 0 )
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::checkDigikamInstancesRunning: At least service [ "org.kde.digikam-29920" ] is using the database server
digikamdatabaseserver(29985)/digikam (database server) Digikam::PollThread::run: Waiting  10  seconds...stop: [ false ]
digikam(29920)/kdeui (KNotification) KNotificationManager::close: 4
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
digikam(29920)/digikam (core) Digikam::SchemaUpdater::update: SchemaUpdater update
digikam(29920)/digikam (core) Digikam::SchemaUpdater::startUpdates: No database file available
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Trying to copy contents from DB with ActionName: [ "Migrate_Read_AlbumRoots" ] to DB with ActionName [ "Migrate_Write_AlbumRoots" ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Driver doesn't support query size. We try to go to the last row and back to the current.
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Result size: [ 0 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "label" ] value [ QVariant(QString, "") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 0) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "type" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "identifier" ] value [ QVariant(QString, "volumeid:?uuid=59f1850e-dbca-4a1a-b49f-09c3a2ff1db2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "specificPath" ] value [ QVariant(QString, "/home/piterdias/Pictures/digikam/raw") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Trying to copy contents from DB with ActionName: [ "Migrate_Read_Albums" ] to DB with ActionName [ "Migrate_Write_Albums" ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Driver doesn't support query size. We try to go to the last row and back to the current.
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Result size: [ 0 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "albumRoot" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "relativePath" ] value [ QVariant(QString, "/") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "date" ] value [ QVariant(QString, "2015-11-11") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "caption" ] value [ QVariant(QString, "") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "collection" ] value [ QVariant(QString, "") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "icon" ] value [ QVariant(QString, "") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Trying to copy contents from DB with ActionName: [ "Migrate_Read_Images" ] to DB with ActionName [ "Migrate_Write_Images" ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Driver doesn't support query size. We try to go to the last row and back to the current.
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Result size: [ 35 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0735.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T12:57:54") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 25092588) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "bcf5cc8201189856e4dfe4abd0354ae0") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 2) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0736.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T12:58:44") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 27673144) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "c1fefa040f1d0bd7dbe47aa4eb0ed39e") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 3) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0737.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T12:59:04") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 27453799) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "e28612b16aa73000866d4895e2daf77d") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 4) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0738.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T12:59:26") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 26860509) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "ad3f835715d658551d96e6b125045971") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 5) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0739.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T12:59:32") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 26522634) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "58bee19dddd6444ebd6ff99272676c34") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 6) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0740.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:01:54") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 28749494) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "58473d29938d3d9f1d570435faecf8df") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 7) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0741.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:03:04") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 25279919) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "f8f27d422293dacbbcfdf99b8e36e941") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 8) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0742.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:03:50") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 25919351) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "8ea96880cfbca8c5e275ff934f5a256b") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 9) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0743.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:10") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 26243290) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "658badd8d58737dd437b7b4dd7876a73") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 10) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0744.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:12") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 26201259) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "1cb1226c0a2f8170185ddd4496c91dfd") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 11) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0745.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:16") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 25322644) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "26ffdf644e47ad74445ae3ec7c6b7707") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 12) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0746.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:36") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 23609467) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "781eb94490d0808f4a051315b1aa5b56") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 13) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0747.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:40") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 23374296) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "7459120c7b8a4d2e932600d11f619014") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 14) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0748.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:05:56") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 23997206) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "86cc798b7a83adf95dbbaa8d25d47085") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 15) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0749.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:06:14") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 26638831) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "91e422e62623101f349fb4d5a0406cca") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 16) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0750.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:06:28") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 22772218) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "39ec20f23860d3eb1d8356a4e2d5f788") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 17) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0751.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:06:30") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 23083450) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "84a2e92135b171b4b4fbd8c5845de5de") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 18) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "album" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "name" ] value [ QVariant(QString, "_MG_0752.CR2") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "status" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "category" ] value [ QVariant(qlonglong, 1) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "modificationDate" ] value [ QVariant(QString, "2015-11-07T13:06:42") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "fileSize" ] value [ QVariant(qlonglong, 23611240) ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "uniqueHash" ] value [ QVariant(QString, "2fc3c92d71a7ddb4eff59f3bff2623e7") ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Query isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
digikam(29920)/digikam (core) Digikam::DatabaseCopyManager::copyTable: Column: [ "id" ] value [ QVariant(qlonglong, 19) ]


_____________________
Piter Dias




From: [hidden email]
Date: Wed, 11 Nov 2015 16:59:00 +0100
To: [hidden email]
Subject: Re: [Digikam-users] Mysql/MariaDb database expert needs...



2015-11-11 12:58 GMT+01:00 Piter Dias <[hidden email]>:

I use digikam under Windows and mysql as database (in a Linux box).

What do you need? Someone to test?

More than testing.

The main problem is the first step of migration from sqlite (the initial DB set at first run) to a local mysql (using internal server).

Currently the migration stop in the middle due to strange error reported by mysql (Mariadb here) :

[gilles@localhost database]$ mysql --version
mysql  Ver 15.1 Distrib 10.0.21-MariaDB, for Linux (x86_64) using readline 5.1

I suppose some ImmoDb incompatibilities with digiKam sql statements to create indexes (tables are created).

[gilles@localhost data]$ digikam
digikam.general: AlbumWatch use QFileSystemWatcher
digikam.general: DatabaseParameters: [ Type "QMYSQL", Name "digikam" (Thumbnails Name "digikam"); (Face Name "digikam"); ConnectOptions: "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket", Using an Internal Server; Username and Password: "root", ""] 
digikam.databaseserver: Waiting  10  seconds...stop: [ false ]
digikam.database: Loading SQL code from config file "/usr/share/digikam/database/dbconfig.xml"
digikam.database: Checking XML version ID:  false "3" 3 3
digikam.database: ConnectOptions  "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket"
digikam.databaseserver: Failed to use database "digikam"
digikam.databaseserver: Query error: "Unknown database 'digikam' QMYSQL: Unable to execute query"
digikam.databaseserver: Database error: "Can't connect to local MySQL server through socket '/home/gilles/.local/share/digikam/db_misc/mysql.socket' (2 \"No such file or directory\") QMYSQL: Unable to connect"
digikam.databaseserver: Trying to create database now...
digikam.databaseserver: Database was successfully created
digikam.database: Loading SQL code from config file "/usr/share/digikam/database/dbconfig.xml"
digikam.database: Checking XML version ID:  false "3" 3 3
digikam.database: SchemaUpdater update
digikam.database: No database file available
digikam.database: Failure executing query:
 "" 
Error messages: "QMYSQL: Unable to execute query" "Table 'mysql.proc' doesn't exist" 1146 2 
Bound values:  ()
digikam.database: Error while executing DBAction [ "CreateIndices" ] Statement [ "\n                    DROP PROCEDURE IF EXISTS create_index_if_not_exists;\n                " ]
digikam.databaseserver: At least service [ "org.kde.digikam.startup-8291" ] is using the database server
digikam.databaseserver: Waiting  10  seconds...stop: [ false ]

Can you reproduce this problem to a fresh account ?

Gilles Caulier

_______________________________________________ Digikam-users mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-users

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4
In reply to this post by Gilles Caulier-4
At least, somebody can said me if an internal Mysql solution is suitable or not without to hack the DB installation outside digiKam.

I read all bugzilla entries, and to setup Mysql, users need to grant privileges by hand before to configure digiKam with it.

This is not possible to do the same with an internal server, since few years ago, Mysql switch DB engine to ImmoDB which require granted privilege to create DB indexes. And this is typically the problem that i can see when i want to create the MySql DB through the internal server.

If i look how Amarok do with Mysql, internal server solution do not exist. Only a remote server is avaialble in setup.

After all, it's logic. If you want an internal server, Sqlite is already implemented and robust. Mysql must be only dedicated for remote storage.

I deducted that Mysql internal server must be removed from digiKam.

Gilles Caulier

2015-11-12 10:30 GMT+01:00 Wolfgang Mader <[hidden email]>:
On Wednesday 11 November 2015 16:59:00 Gilles Caulier wrote:
> 2015-11-11 12:58 GMT+01:00 Piter Dias <[hidden email]>:
> > I use digikam under Windows and mysql as database (in a Linux box).
> >
> > What do you need? Someone to test?
>
> More than testing.
>
> The main problem is the first step of migration from sqlite (the initial DB
> set at first run) to a local mysql (using internal server).
>
> Currently the migration stop in the middle due to strange error reported by
> mysql (Mariadb here) :

Hi Gilles,

thanks for tackling the database issue. I want to let you know, that this
effort is highly appreciated.

Unfortunately, I can not help you here, since my sql is rusty, too. But,
maybe, you can ask on kde-devel. As you surely know, there are the baloo guys
around, and I guess they should be experts on sql.

Thanks for your great software! I am really looking forward to the kf5 port!
Best,
Wolfgang

>
> [gilles@localhost database]$ mysql --version
> mysql  Ver 15.1 Distrib 10.0.21-MariaDB, for Linux (x86_64) using readline
> 5.1
>
> I suppose some ImmoDb incompatibilities with digiKam sql statements to
> create indexes (tables are created).
>
> [gilles@localhost data]$ digikam
> digikam.general: AlbumWatch use QFileSystemWatcher
> digikam.general: DatabaseParameters: [ Type "QMYSQL", Name "digikam"
> (Thumbnails Name "digikam"); (Face Name "digikam"); ConnectOptions:
> "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket", Using
> an Internal Server; Username and Password: "root", ""]
> digikam.databaseserver: Waiting  10  seconds...stop: [ false ]
> digikam.database: Loading SQL code from config file
> "/usr/share/digikam/database/dbconfig.xml"
> digikam.database: Checking XML version ID:  false "3" 3 3
> digikam.database: ConnectOptions
>  "UNIX_SOCKET=/home/gilles/.local/share/digikam/db_misc/mysql.socket"
> digikam.databaseserver: Failed to use database "digikam"
> digikam.databaseserver: Query error: "Unknown database 'digikam' QMYSQL:
> Unable to execute query"
> digikam.databaseserver: Database error: "Can't connect to local MySQL
> server through socket
> '/home/gilles/.local/share/digikam/db_misc/mysql.socket' (2 \"No such file
> or directory\") QMYSQL: Unable to connect"
> digikam.databaseserver: Trying to create database now...
> digikam.databaseserver: Database was successfully created
> digikam.database: Loading SQL code from config file
> "/usr/share/digikam/database/dbconfig.xml"
> digikam.database: Checking XML version ID:  false "3" 3 3
> digikam.database: SchemaUpdater update
> digikam.database: No database file available
> digikam.database: Failure executing query:
>  ""
> Error messages: "QMYSQL: Unable to execute query" "Table 'mysql.proc'
> doesn't exist" 1146 2
> Bound values:  ()
> digikam.database: Error while executing DBAction [ "CreateIndices" ]
> Statement [ "\n                    DROP PROCEDURE IF EXISTS
> create_index_if_not_exists;\n                " ]
> digikam.databaseserver: At least service [ "org.kde.digikam.startup-8291" ]
> is using the database server
> digikam.databaseserver: Waiting  10  seconds...stop: [ false ]
>
> Can you reproduce this problem to a fresh account ?
>
> Gilles Caulier


_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Pedro Neves
On 12-11-2015 09:55, Gilles Caulier wrote:

> At least, somebody can said me if an internal Mysql solution is
> suitable or not without to hack the DB installation outside digiKam.
>
> I read all bugzilla entries, and to setup Mysql, users need to grant
> privileges by hand before to configure digiKam with it.
>
> This is not possible to do the same with an internal server, since few
> years ago, Mysql switch DB engine to ImmoDB which require granted
> privilege to create DB indexes. And this is typically the problem that
> i can see when i want to create the MySql DB through the internal server.
>
> If i look how Amarok do with Mysql, internal server solution do not
> exist. Only a remote server is avaialble in setup.
>
> After all, it's logic. If you want an internal server, Sqlite is
> already implemented and robust. Mysql must be only dedicated for
> remote storage.
>
> I deducted that Mysql internal server must be removed from digiKam.
>
>
Hi:

I'm not an expert on databases or MySQL, but the explanation Gilles gave
makes sense to me. I'm using SQlite and to me, it makes sense to only
use MySQL as a remote storage.
But that's only my opinion...

Cheers:

Pedro
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Myriam Schweingruber
In reply to this post by Gilles Caulier-4
Hi Gilles,



On Thu, Nov 12, 2015 at 10:55 AM, Gilles Caulier
<[hidden email]> wrote:

> At least, somebody can said me if an internal Mysql solution is suitable or
> not without to hack the DB installation outside digiKam.
>
> I read all bugzilla entries, and to setup Mysql, users need to grant
> privileges by hand before to configure digiKam with it.
>
> This is not possible to do the same with an internal server, since few years
> ago, Mysql switch DB engine to ImmoDB which require granted privilege to
> create DB indexes. And this is typically the problem that i can see when i
> want to create the MySql DB through the internal server.
>
> If i look how Amarok do with Mysql, internal server solution do not exist.
> Only a remote server is avaialble in setup.
>
That is not correct, Amarok uses MySQL embedded by default, setting up
an external MySQL server is just an additional option for people who
need to share a database across computers.

Unfortunately there is little more help I can offer :(

Regards, Myriam

--
Protect your freedom and join the Fellowship of FSFE:
http://www.fsfe.org
Please don't send me proprietary file formats,
use ISO standard ODF instead (ISO/IEC 26300)
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

maderios
In reply to this post by Pedro Neves
On 11/12/2015 11:18 AM, Pedro Neves wrote:

> I'm not an expert on databases or MySQL, but the explanation Gilles gave
> makes sense to me. I'm using SQlite and to me, it makes sense to only
> use MySQL as a remote storage.
> But that's only my opinion...
Hi
My experience: mysql is much better because it runs faster than sqlite,
especially  with huge images stock, > 20 000 or 30 000. In this last
case, Sqlite takes hours to rebuild db.

--
Maderios
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-12 12:43 GMT+01:00 maderios <[hidden email]>:
On 11/12/2015 11:18 AM, Pedro Neves wrote:

I'm not an expert on databases or MySQL, but the explanation Gilles gave
makes sense to me. I'm using SQlite and to me, it makes sense to only
use MySQL as a remote storage.
But that's only my opinion...
Hi
My experience: mysql is much better because it runs faster than sqlite, especially  with huge images stock, > 20 000 or 30 000. In this last case, Sqlite takes hours to rebuild db.

yes, i agree. In fact 2 user cases :

databases are local : sqlite : enough for small and medium collections.
databases are remote : mysql : for large collections.

Note that i use more than 100.000 items in my collections, hosted in a huge SDD (including sqlite databases files), and this work perfectly.

Gilles 
 


--
Maderios

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users


_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Henrique Santos Fernandes
Hello,

For the mysql itself there is no diference if it is internal or external. Just use the network conection.

The permissions are the same for the user just need to grant all privilegdes for the user.

Digikam could ask for two ways to begin, the first would be to already have the user it needs to connect to the database. The second it could ask for database admin user, in this case, digikam would create its users as it needs. It makes the installating easier for the user, and also more secure for the user digikam, so it will only have the permission it needs.

But i mean, i guess this is the easier part.. the hard part woould be the actual use of mysql for storing stuff right?
I wish i knew mysql well enouh to help..

I prefere mysql cause it would be possible/easier to use digikam on multiple computers with the same database!

Hope this goes forward!


Em qui, 12 de nov de 2015 às 10:02, Gilles Caulier <[hidden email]> escreveu:
2015-11-12 12:43 GMT+01:00 maderios <[hidden email]>:
On 11/12/2015 11:18 AM, Pedro Neves wrote:

I'm not an expert on databases or MySQL, but the explanation Gilles gave
makes sense to me. I'm using SQlite and to me, it makes sense to only
use MySQL as a remote storage.
But that's only my opinion...
Hi
My experience: mysql is much better because it runs faster than sqlite, especially  with huge images stock, > 20 000 or 30 000. In this last case, Sqlite takes hours to rebuild db.

yes, i agree. In fact 2 user cases :

databases are local : sqlite : enough for small and medium collections.
databases are remote : mysql : for large collections.

Note that i use more than 100.000 items in my collections, hosted in a huge SDD (including sqlite databases files), and this work perfectly.

Gilles 
 


--
Maderios

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-12 13:58 GMT+01:00 Henrique Santos Fernandes <[hidden email]>:
Hello,

For the mysql itself there is no diference if it is internal or external. Just use the network conection.

no. The database creation is different : 

- Internal : all is done by digiKam as well, thrue digikamdatabaseserver CLI tool. grant all privilegdes cannot processed, because DB is done at run time when digiKam session is open.

- remote : the database server need to be prepared before, especially privilegdes stuff. It explained in Amarok setup page for ex (a similar explainations need to be done in digiKam)
 

The permissions are the same for the user just need to grant all privilegdes for the user.

yes, but for a internal solution, user do not acces to database, until digiKam try to create it and fail of course due to missing privilegdes

As, the privilegdes cannot be granted from users space, but must be done by server admin, the internal solution is a non sense. Sqlite do the stuff as well in this situation. As i said previously, trying to run digiKam with an internal mysql server will generate a lots of problems, a lots of reports, and finaly, only if user is an expert, this will not possible to use this way.

So i will drop internal mysql support for 5.0.0
 

Digikam could ask for two ways to begin, the first would be to already have the user it needs to connect to the database. The second it could ask for database admin user, in this case, digikam would create its users as it needs. It makes the installating easier for the user, and also more secure for the user digikam, so it will only have the permission it needs.

yes. The way to do it il given below :

CREATE DATABASE digikamdb;GRANT ALL PRIVILEGES ON digikamdb.* TO 'digikamuser'@'localhost' IDENTIFIED BY 'digikamuserpassword'; FLUSH PRIVILEGES; GRANT SUPER ON *.* TO 'digikamuser'@'localhost'; FLUSH PRIVILEGES;

digikamdb : the digiKam databse name (in case of we use only one mysql database for all tables)
digikamuser : the name of user account used by digiKAm to access on mysql
digikamuserpassword : the password of the account.

Here, the mysql DB is hosted on local machine (localhost). Adjusting the name of the machine permit to use a remote server as well.
 

But i mean, i guess this is the easier part.. the hard part woould be the actual use of mysql for storing stuff right?
I wish i knew mysql well enouh to help..

The here another pending and very important question : 

With digiKam 5.0.0, we will have 3 database to manage :

1/ Core DB
2/ Thumbnails DB
3/ Face DB (since libkface is merged in digiKam core)

For each digiKam database we can use a specific name. By default i used the name name (digikamdb) here to test, and it work for Core and Thumbnails DB. Face DB don't work and investiguations are under progress...

So, the question is : why we have the capability to separate Core, Thumbnails, and Face DB with different name (as for ex digikamcoredb, digkamthumbsdb, and digikamfacedb) ? 

In my /var/lib/mysql, i can see separated subfolders to host DB ? What's the advantage ? backup facilities ? Performances ? What's must be the default settings : common name or separated name ?

All this point are not clear for me (and also for end users as i can see in bugzilla).
 

I prefere mysql cause it would be possible/easier to use digikam on multiple computers with the same database!

Sure, this is another important feature, which introduce other dysfunctions as i can see in bugzilla.

We must investigate step by step, first with simple user cases...

Gilles Caulier

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Bugzilla from myriam@kde.org
In reply to this post by Gilles Caulier-4
Hi all,

seems I posted from the wrong address the first time...

On Thu, Nov 12, 2015 at 10:55 AM, Gilles Caulier
<[hidden email]> wrote:

> At least, somebody can said me if an internal Mysql solution is suitable or
> not without to hack the DB installation outside digiKam.
>
> I read all bugzilla entries, and to setup Mysql, users need to grant
> privileges by hand before to configure digiKam with it.
>
> This is not possible to do the same with an internal server, since few years
> ago, Mysql switch DB engine to ImmoDB which require granted privilege to
> create DB indexes. And this is typically the problem that i can see when i
> want to create the MySql DB through the internal server.
>
> If i look how Amarok do with Mysql, internal server solution do not exist.
> Only a remote server is avaialble in setup.

That is not correct, Amarok uses MySQL embedded by default, setting up
an external MySQL server is just an additional option for people who
need to share a database across computers.

Unfortunately there is little more help I can offer :(

Regards, Myriam

--
Proud member of the Amarok and KDE Community
Protect your freedom and join the Fellowship of FSFE:
http://www.fsfe.org
Please don't send me proprietary file formats,
use ISO standard ODF instead (ISO/IEC 26300)
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-12 15:15 GMT+01:00 Myriam Schweingruber <[hidden email]>:
Hi all,

seems I posted from the wrong address the first time...

On Thu, Nov 12, 2015 at 10:55 AM, Gilles Caulier
<[hidden email]> wrote:
> At least, somebody can said me if an internal Mysql solution is suitable or
> not without to hack the DB installation outside digiKam.
>
> I read all bugzilla entries, and to setup Mysql, users need to grant
> privileges by hand before to configure digiKam with it.
>
> This is not possible to do the same with an internal server, since few years
> ago, Mysql switch DB engine to ImmoDB which require granted privilege to
> create DB indexes. And this is typically the problem that i can see when i
> want to create the MySql DB through the internal server.
>
> If i look how Amarok do with Mysql, internal server solution do not exist.
> Only a remote server is avaialble in setup.

That is not correct, Amarok uses MySQL embedded by default, setting up
an external MySQL server is just an additional option for people who
need to share a database across computers.

Ah, it's not SQlite... Interesting...

So my question is : how to create DB indexes and triggers with an internal solution. When i look in bugzilla, some users have investigated and see that mysql indexes creation need granted privileges since immodb DB engine is used. And this is true : i reproduced the dysfunction and fixed it.

Or perhaps Amarok do not use Indexes and triggers. In this case, DB performances will just down...
Or perhaps Amarok do not use immodb engine...

Gilles Caulier

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Henrique Santos Fernandes
In reply to this post by Gilles Caulier-4

As, the privilegdes cannot be granted from users space, but must be done by server admin, the internal solution is a non sense. Sqlite do the stuff as well in this situation. As i said previously, trying to run digiKam with an internal mysql server will generate a lots of problems, a lots of reports, and finaly, only if user is an expert, this will not possible to use this way.

So i will drop internal mysql support for 5.0.0

All right.. i mean, it is easier to develop like this, one solution only

yes. The way to do it il given below :

CREATE DATABASE digikamdb;GRANT ALL PRIVILEGES ON digikamdb.* TO 'digikamuser'@'localhost' IDENTIFIED BY 'digikamuserpassword'; FLUSH PRIVILEGES; GRANT SUPER ON *.* TO 'digikamuser'@'localhost'; FLUSH PRIVILEGES;

Why do digikam need super?


The here another pending and very important question : 

With digiKam 5.0.0, we will have 3 database to manage :

1/ Core DB
2/ Thumbnails DB
3/ Face DB (since libkface is merged in digiKam core)

For each digiKam database we can use a specific name. By default i used the name name (digikamdb) here to test, and it work for Core and Thumbnails DB. Face DB don't work and investiguations are under progress...

So, the question is : why we have the capability to separate Core, Thumbnails, and Face DB with different name (as for ex digikamcoredb, digkamthumbsdb, and digikamfacedb) ? 

I think this is purely organization related right?
I dont realy see any reason why it should be separated.
 

In my /var/lib/mysql, i can see separated subfolders to host DB ? What's the advantage ? backup facilities ? Performances ? What's must be the default settings : common name or separated name ?

Having separated databases, you will have to adjust the user  grant permissions for each case as well. 
Same for backup, now we have to backup 3 databases for backup digikam.

As far as i know, there is no performance gain in any situation, but you gain complexity as you will need to create the mutiple users and also, you may be in a situation where you are not sure in wich database this "data" should be.

I would vote for a single database, but i am no expert and thougt it was a design choice to have multple databases.

One reason to have it not as the same, if you wish to use thumbtail on disk and the rest on mysql, but i guess this will introduce more problens than any real advantages.
 

All this point are not clear for me (and also for end users as i can see in bugzilla).
 

I prefere mysql cause it would be possible/easier to use digikam on multiple computers with the same database!

Sure, this is another important feature, which introduce other dysfunctions as i can see in bugzilla.

We must investigate step by step, first with simple user cases...

Gilles Caulier
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-12 15:30 GMT+01:00 Henrique Santos Fernandes <[hidden email]>:

As, the privilegdes cannot be granted from users space, but must be done by server admin, the internal solution is a non sense. Sqlite do the stuff as well in this situation. As i said previously, trying to run digiKam with an internal mysql server will generate a lots of problems, a lots of reports, and finaly, only if user is an expert, this will not possible to use this way.

So i will drop internal mysql support for 5.0.0

All right.. i mean, it is easier to develop like this, one solution only

yes. The way to do it il given below :

CREATE DATABASE digikamdb;GRANT ALL PRIVILEGES ON digikamdb.* TO 'digikamuser'@'localhost' IDENTIFIED BY 'digikamuserpassword'; FLUSH PRIVILEGES; GRANT SUPER ON *.* TO 'digikamuser'@'localhost'; FLUSH PRIVILEGES;

Why do digikam need super?

I don't know. I just found this solution in a bugzilla entry and it work.

Someone like you have posted the same question without a response.

Here my knowledge of mysql is limited.
 


The here another pending and very important question : 

With digiKam 5.0.0, we will have 3 database to manage :

1/ Core DB
2/ Thumbnails DB
3/ Face DB (since libkface is merged in digiKam core)

For each digiKam database we can use a specific name. By default i used the name name (digikamdb) here to test, and it work for Core and Thumbnails DB. Face DB don't work and investiguations are under progress...

So, the question is : why we have the capability to separate Core, Thumbnails, and Face DB with different name (as for ex digikamcoredb, digkamthumbsdb, and digikamfacedb) ? 

I think this is purely organization related right?
I dont realy see any reason why it should be separated.

So the question still pending...
 
 

In my /var/lib/mysql, i can see separated subfolders to host DB ? What's the advantage ? backup facilities ? Performances ? What's must be the default settings : common name or separated name ?

Having separated databases, you will have to adjust the user  grant permissions for each case as well. 
Same for backup, now we have to backup 3 databases for backup digikam.

in case of you use separated DB name. Else, all is mixed in same dir.
 

As far as i know, there is no performance gain in any situation, but you gain complexity as you will need to create the mutiple users and also, you may be in a situation where you are not sure in wich database this "data" should be.

I would vote for a single database, but i am no expert and thougt it was a design choice to have multple databases.

One reason to have it not as the same, if you wish to use thumbtail on disk and the rest on mysql, but i guess this will introduce more problens than any real advantages.

thumbnail on disk will be stored in sqlite DB in this case. No real advantage, and impossible to do currently : all mysql or all sqlite, that all.

Gilles Caulier

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Richard Mortimer-2
In reply to this post by Gilles Caulier-4


On 12/11/2015 13:51, Gilles Caulier wrote:

>
> The here another pending and very important question :
>
> With digiKam 5.0.0, we will have 3 database to manage :
>
> 1/ Core DB
> 2/ Thumbnails DB
> 3/ Face DB (since libkface is merged in digiKam core)
>
> For each digiKam database we can use a specific name. By default i used
> the name name (digikamdb) here to test, and it work for Core and
> Thumbnails DB. Face DB don't work and investiguations are under progress...
>
> So, the question is : why we have the capability to separate Core,
> Thumbnails, and Face DB with different name (as for ex digikamcoredb,
> digkamthumbsdb, and digikamfacedb) ?
>
> In my /var/lib/mysql, i can see separated subfolders to host DB ? What's
> the advantage ? backup facilities ? Performances ? What's must be the
> default settings : common name or separated name ?

The one advantage of having separate databases is for backup purposes.
The thumbnail database in particular can be massive and having it
separate makes it easier especially since it is basically throwaway data
anyway.

The performance of MySQL doesn't really come into it. You can in theory
partition different databases into different locations/disks etc. and
that might be of interest to some but it would be a pretty special use case.

I think that the correct default would be to use a common name for all
three but allow separate names if required.

Regards

Richard

>
> All this point are not clear for me (and also for end users as i can see
> in bugzilla).
>  
>
>
>     I prefere mysql cause it would be possible/easier to use digikam on
>     multiple computers with the same database!
>
>
> Sure, this is another important feature, which introduce other
> dysfunctions as i can see in bugzilla.
>
> We must investigate step by step, first with simple user cases...
>
> Gilles Caulier
>
>
> _______________________________________________
> Digikam-users mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-users
>
_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

eldk
In reply to this post by Gilles Caulier-4
Hello,

>        
>        
>         Why do digikam need super?

>
>
> I don't know. I just found this solution in a bugzilla entry and it
> work.


>
>
> Someone like you have posted the same question without a response.
>
>
> Here my knowledge of mysql is limited.

I think digikam need super for this :

"to create or alter a stored function, you must have the SUPER
privilege, in addition to the CREATE ROUTINE or ALTER ROUTINE privilege
that is normally required. (Depending on the DEFINER value in the
function definition, SUPER might be required regardless of whether
binary logging is enabled. See Section 13.1.12, “CREATE PROCEDURE and
CREATE FUNCTION Syntax”.)"



http://dev.mysql.com/doc/refman/5.7/en/stored-programs-logging.html


In the web, I don't know any CMS, which use MYSQl, that doesn't need at
least the knowledge to create a database, its user and right, except
when the hosting service do it for its customer. (and no CMS that need
SUPER privileges)

So, using MYSQL with Digikam needs at least the same knowledge.

What is "surprising" and not usual is the super privileges needed, and
all I've read on configuring Digikam with MYSQL is about to get this
working.

I don't know how this is handle with AMAROK (local or remote MYSQL), but
a look at it should be done.

Greatings,

Eric




_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

eldk
In reply to this post by Gilles Caulier-4
Hello again,

As I remember, there is another trikky point when installing Digikam and
adding collection for another user : had a little local collection
first, then modify the collection parameters to get "mysql common
collection database".

Thanks,

Eric



Le jeudi 12 novembre 2015 à 15:43 +0100, Gilles Caulier a écrit :

>
>
> 2015-11-12 15:30 GMT+01:00 Henrique Santos Fernandes
> <[hidden email]>:
>                
>                
>                 As, the privilegdes cannot be granted from users
>                 space, but must be done by server admin, the internal
>                 solution is a non sense. Sqlite do the stuff as well
>                 in this situation. As i said previously, trying to run
>                 digiKam with an internal mysql server will generate a
>                 lots of problems, a lots of reports, and finaly, only
>                 if user is an expert, this will not possible to use
>                 this way.
>                
>                
>                 So i will drop internal mysql support for 5.0.0
>        
>        
>         All right.. i mean, it is easier to develop like this, one
>         solution only
>                
>                
>                 yes. The way to do it il given below :
>                
>                
>                 CREATE DATABASE digikamdb;GRANT ALL PRIVILEGES ON
>                 digikamdb.* TO 'digikamuser'@'localhost' IDENTIFIED BY
>                 'digikamuserpassword'; FLUSH PRIVILEGES; GRANT SUPER
>                 ON *.* TO 'digikamuser'@'localhost'; FLUSH PRIVILEGES;
>        
>        
>         Why do digikam need super?
>
>
> I don't know. I just found this solution in a bugzilla entry and it
> work.
>
>
> Someone like you have posted the same question without a response.
>
>
> Here my knowledge of mysql is limited.
>  
>        
>        
>                
>                
>                 The here another pending and very important
>                 question :
>                
>                
>                 With digiKam 5.0.0, we will have 3 database to
>                 manage :
>                
>                
>                 1/ Core DB
>                 2/ Thumbnails DB
>                 3/ Face DB (since libkface is merged in digiKam core)
>                
>                
>                 For each digiKam database we can use a specific name.
>                 By default i used the name name (digikamdb) here to
>                 test, and it work for Core and Thumbnails DB. Face DB
>                 don't work and investiguations are under progress...
>                
>                
>                 So, the question is : why we have the capability to
>                 separate Core, Thumbnails, and Face DB with different
>                 name (as for ex digikamcoredb, digkamthumbsdb, and
>                 digikamfacedb) ?
>        
>        
>         I think this is purely organization related right?
>         I dont realy see any reason why it should be separated.
>
>
> So the question still pending...
>  
>          
>                
>                
>                 In my /var/lib/mysql, i can see separated subfolders
>                 to host DB ? What's the advantage ? backup
>                 facilities ? Performances ? What's must be the default
>                 settings : common name or separated name ?
>        
>        
>         Having separated databases, you will have to adjust the user
>          grant permissions for each case as well.
>         Same for backup, now we have to backup 3 databases for backup
>         digikam.
>
>
> in case of you use separated DB name. Else, all is mixed in same dir.
>  
>        
>        
>         As far as i know, there is no performance gain in any
>         situation, but you gain complexity as you will need to create
>         the mutiple users and also, you may be in a situation where
>         you are not sure in wich database this "data" should be.
>        
>        
>         I would vote for a single database, but i am no expert and
>         thougt it was a design choice to have multple databases.
>        
>        
>         One reason to have it not as the same, if you wish to use
>         thumbtail on disk and the rest on mysql, but i guess this will
>         introduce more problens than any real advantages.
>
>
> thumbnail on disk will be stored in sqlite DB in this case. No real
> advantage, and impossible to do currently : all mysql or all sqlite,
> that all.
>
>
> Gilles Caulier
> _______________________________________________
> Digikam-users mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-users


_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Gilles Caulier-4


2015-11-12 17:25 GMT+01:00 eric <[hidden email]>:
Hello again,

As I remember, there is another trikky point when installing Digikam and
adding collection for another user : had a little local collection
first, then modify the collection parameters to get "mysql common
collection database".

yes, to be able to use directly in first run assistant a remote mysql database is in my TODO list 

Giles

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
Reply | Threaded
Open this post in threaded view
|

Re: Mysql/MariaDb database expert needs...

Henrique Santos Fernandes
In reply to this post by Richard Mortimer-2

The one advantage of having separate databases is for backup purposes.
The thumbnail database in particular can be massive and having it
separate makes it easier especially since it is basically throwaway data
anyway.


This is true. But still easy to remove or drop the tables related to it.
Only "problem" would be the backup size, as it would include the thumbnails..
 
The performance of MySQL doesn't really come into it. You can in theory
partition different databases into different locations/disks etc. and
that might be of interest to some but it would be a pretty special use case.

I think that the correct default would be to use a common name for all
three but allow separate names if required.

I think teh default should be one database also.

I guess, having the possibility to separate the databases  would introduce much more work right? I am not sure.. not a developer..  i only know some about infrastructure .
 

_______________________________________________
Digikam-users mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-users
123