# digikam 2.9.0 mysql 5.1.62 Problem

## flammenflitzer

```
digikam --version

Qt: 4.8.2

KDE: 4.9.2

digiKam: 2.9.0
```

```

mysql --version

mysql  Ver 14.14 Distrib 5.1.62, for pc-linux-gnu (x86_64) using readline 5.1
```

```
hostname

flammenflitzer
```

```
mysql> DROP DATABASE digikam;

Query OK, 0 rows affected (0.00 sec)
```

```
mysql> CREATE DATABASE digikam;

Query OK, 1 row affected (0.00 sec)

mysql> USE digikam;

Database changed

mysql> GRANT ALL ON digikam .* TO digikam@flammenflitzer IDENTIFIED BY '12345678';

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> quit;

Bye
```

digikam Einstellungen

```
Hostname: flammenflitzer oder 127.0.0.1 (beides probiert)

 Schema Name: /home/olaf/Bilder/digikam4.db

 Thumbnails Schema Name: /home/olaf/Bilder/thumbnails-digikam.db

 Port: 3306

 Username: digikam

 Password: 12345678
```

```
"Datenbankverbindung erfolgreich geprüft"
```

digikam in der Konsole gestartet

```
digikam(3734)/digikam (core): Error while opening the database. Error details [ QSqlError(1044, "QMYSQL: Verbindungsaufbau nicht möglich", "Access denied for user 'digikam'@'localhost' to database '/home/olaf/Bilder/digikam4.db'") ] 
```

----------

## bell

Du hast Berechtigungen für "digikam@flammenflitzer" eingerichtet. Anscheinend geht digikam jedoch über digikam@localhost. Füge diese Berechtigung ebenfalls mit "GRANT" hinzu.

----------

## franzf

Da sollte doch gar nichts einzustellen sein. Digikam geht wohl über Embedded-Mysql. Zugriffsrechte brauchst du nur, wenn du den mysql als Server laufen lässt.

Verschieb einfach mal das db-file und starte digikam.

----------

## flammenflitzer

Ich habe mysql als Server laufen.

```
dev-db/mysql-5.1.62-r1  USE="berkdb community perl ssl -big-tables -cluster -debug -embedded -extraengine -latin1 -max-idx-128 -minimal -pbxt -profiling (-selinux) -static -test -xtradb"
```

```
mysql> GRANT ALL ON digikam .* TO digikam@localhost IDENTIFIED BY '12345678';

Query OK, 0 rows affected (0.04 sec)
```

```
olaf@flammenflitzer ~ $ digikam

digikam(21759)/digikam (core): Error while opening the database. Error details [ QSqlError(1044, "QMYSQL: Verbindungsaufbau nicht möglich", "Access denied for user 'digikam'@'localhost' to database '/home/olaf/Bilder/digikam4.db'") ]
```

----------

## franzf

Mit welchen USE-Flags hast du digikam gebaut?

----------

## firefly

Hast du /home/olaf/Bilder/digikam4.db selbst angelegt oder kommt diese von digikam. Weil der name digikam4.db konnte ich im internet nur im zusammenhang mit sqlite finden und nicht mysql.

da du eine mysql server instanz laufen hast, dann schau dir mal dieses Howto an:

http://userbase.kde.org/Digikam/Using_digiKam_with_MySQL

----------

## flammenflitzer

/home/olaf/Bilder/digikam4.db hat digikam angelegt. 

Die Anleitung und diverse andere kenne ich schon. Bevor ich mein System neu aufgesetzt habe (Festplattencrash) habe ich auch digikam mit externem mysql genutzt. Lief flüssiger als jetzt.

```
media-gfx/digikam-2.9.0  USE="addressbook gphoto2 handbook mysql semantic-desktop thumbnails video (-aqua) -debug -doc -themedesigner" LINGUAS="de -af -ar -az -be -bg -bn -br -bs -ca -cs -csb -cy -da -el -en_GB -eo -es -et -eu -fa -fi -fo -fr -fy -ga -gl -ha -he -hi -hr -hsb -hu -id -is -it -ja -ka -kk -km -ko -ku -lb -lo -lt -lv -mi -mk -mn -ms -mt -nb -nds -ne -nl -nn -nso -oc -pa -pl -pt -pt_BR -ro -ru -rw -se -sk -sl -sq -sr -sr@Latn -ss -sv -ta -te -tg -th -tr -tt -uk -uz -uz@cyrillic -ven -vi -wa -xh -zh_CN -zh_HK -zh_TW -zu"
```

----------

## firefly

 *flammenflitzer wrote:*   

> /home/olaf/Bilder/digikam4.db hat digikam angelegt. 
> 
> Die Anleitung und diverse andere kenne ich schon. Bevor ich mein System neu aufgesetzt habe (Festplattencrash) habe ich auch digikam mit externem mysql genutzt. Lief flüssiger als jetzt.
> 
> ```
> ...

 

dann verwendet du aber nicht den externen mysql... 

Denn in der verlinkten Anleitung steht doch dass du zwei Datenbanken (z.b. mit den namen digikam und thumbnails-digikam) anlegen sollst.

Da digikam immer noch die digikam4.db anlegt, so denkt Digikam dass es noch sqlite als datenbank backend verwenden soll.

----------

## franzf

 *Quote:*   

> Denn in der verlinkten Anleitung steht doch dass du zwei Datenbanken (z.b. mit den namen digikam und thumbnails-digikam) anlegen sollst.

 

Und genau da hapert es bei ihm wohl - er hat immer noch die Pfade zu den (alten) SQLite-dbs im schema stehen. Digikam öffnet die Teile dann mit dem QMYSQL-Treiber - bamm, error -> ist ja auch eine sqlite-db!

Wahrscheinlich ist bei dir bei irgend einem update etwas beim config-Aktualisieren schief gegangen und DK hat sich wieder den default (sqlite) geschnappt. Oder du hast Digikam neu eingerichtet, das startet automatisch mit sqlite.

In jedem Fall gibt es für den Fall (sqlite->mysql) den Db-Migrator.

----------

## flammenflitzer

digikam4.db und thumbnails-digikam.db hat digikam angelegt. Habe ich gelöscht. Im Einrichtungsdialod eingetragen:

Name des Schemas: digikam4

Vorschaubilder des Schemas: thumbnails-digikam

```
olaf@flammenflitzer ~ $ digikam

digikam(542)/digikam (core): Error while opening the database. Error details [ QSqlError(1044, "QMYSQL: Verbindungsaufbau nicht möglich", "Access denied for user 'digikam'@'localhost' to database 'digikam4'") ] 
```

auch

Name des Schemas: /home/olaf/Bilder/digikam4

Vorschaubilder des Schemas: /home/olaf/Bilder/thumbnails-digikam ändert nichts.

Bei Rechnername localhost flammenflitzer und 127.0.0.1 ausprobiert.

Das sollte eigentlich funktionieren, denn so hatte ich das bei meiner letzten Installation

Rechnername: flammenflitzer 127.0.0.1 oder localhost

Name des Schemas: digikam

Vorschaubilder des Schemas: thumbnails-digikam

```
Sie besitzen nicht die benötigten Rechte für die Datenbank.

Sie besitzen folgende Rechte nicht:

CREATE TRIGGER

Überprüfen Sie Ihre Rechte für die Datenbank und starten Sie digiKam neu.
```

```
olaf@flammenflitzer ~ $ digikam

QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.

digikam(8261)/digikam (core): Insufficient rights on databse. 

QPainter::begin: Widget painting can only begin as a result of a paintEvent
```

Mit

Rechnername: flammenflitzer 127.0.0.1 oder localhost

Name des Schemas: /home/olaf/Bilder/digikam

Vorschaubilder des Schemas: /home/olaf/Bilder/thumbnails-digikam

```

olaf@flammenflitzer ~ $ digikam

digikam(5875)/digikam (core): Error while opening the database. Error details [ QSqlError(1044, "QMYSQL: Verbindungsaufbau nicht möglich", "Access denied for user 'digikam'@'localhost' to database '/home/olaf/Bilder/digikam'") ] 
```

----------

## franzf

Warum jetzt digikam4? Du hast doch deine Datenbank "digikam" genannt.

 *Quote:*   

> Das gleiche mit

 

Das gleiche ist es nicht, sondern was ganz anderes.

Für "digikam" hast du einfach nur kein Recht für "CREATE TRIGGER":

http://www.gentooforum.de/artikel/20789/media-gfx-digikam-2-8-0-und-mysql-create-trigger.html

http://www.gentoofreunde.org/phpbb/viewtopic.php?f=13&t=703&view=previous

----------

## flammenflitzer

```
mysql> CREATE DATABASE thumbnails-digikam;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-digikam' at line 1
```

```
mysql> CREATE DATABASE thumbnails;

Query OK, 1 row affected (0.02 sec)

mysql> USE thumbnails;

Database changed

mysql> GRANT ALL ON thumbnails .* TO digikam@localhost IDENTIFIED BY '12345678';

Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES; 

Query OK, 0 rows affected (0.00 sec)
```

Dann in :Thumbnails Schema Name: thumbnails

```
Sie besitzen nicht die benötigten Rechte für die Datenbank.

Sie besitzen folgende Rechte nicht:

CREATE TRIGGER

Überprüfen Sie Ihre Rechte für die Datenbank und starten Sie digiKam neu.
```

Jetzt habe ich 2 Datenbanken, für die ich keine Rechte besitze. In meiner alten Installation hat eine DB ausgereicht.

----------

## flammenflitzer

```
GRANT ALL ON *.* TO digikam@localhost IDENTIFIED BY '12345678';
```

 behebt das Problem.

----------

