Autor Thema: Mysql DBlog auf Synology NAS mit MariaDB und ActivePerl  (Gelesen 1084 mal)

Offline Thargor

  • Full Member
  • ***
  • Beiträge: 135
Mysql DBlog auf Synology NAS mit MariaDB und ActivePerl
« am: 05 November 2015, 09:18:55 »
Hallo,

ich habe gestern mal versucht mein DBLog von SQLite auf Mysql umzustellen, leider stürzt mit FHEM dabei ab.
Folgendermaßen bin ich vorgegangen:
- Mittels phpMyAdmin die Befehle in der  db_create_mysql.sql ausgeführt um Tabellen und Nutzer anzulegen
- Die db.conf angepasst
%dbconfig= (
    connection => "mysql:database=fhem;host=localhost;port=3306",
    user => "XXX",
    password => "XXX",
);
- Activeperl um das Paket DBD-MySQL erweitert

Beim Start meldet FHEM im Logfile brav:
Connecting to database mysql:database=fhem;host=localhost;port=3306 with user XXXSobald ich FHEMWeb öffne, stürzt FHEM dann ab. Letzter Logeintrag:
PERL WARNING: Use of uninitialized value $name in substitution (s///) at /usr/local/FHEM/share/fhem/FHEM/01_FHEMWEB.pm line 2229.
PERL WARNING: Use of uninitialized value $name in hash element at /usr/local/FHEM/share/fhem/FHEM/01_FHEMWEB.pm line 2231.
Can't call method "prepare" on an undefined value at /usr/local/FHEM/share/fhem/FHEM/93_DbLog.pm line 1000.

Es werden keine Einträge in die Datenbank geschrieben. Ich vermute also, dass schon die Verbindung scheitert. Benötige ich noch ein anderes Perl Paket für Mysql? In der Logdatei von MariaDB kann ich keine Fehlermeldung finden. Hat irgendjemand eine Idee woran das liegen könnte? DBlog mit SQLite klappt problemlos.

Vielen Dank!
Gruß Lars

Offline Thargor

  • Full Member
  • ***
  • Beiträge: 135
Antw:Mysql DBlog auf Synology NAS mit MariaDB und ActivePerl
« Antwort #1 am: 20 November 2015, 12:04:55 »
Habe nun selbst die Lösung gefunden. Die Verbindung kommt tatsächlich nicht zustande, weil ein falscher Socket benutzt wird.

Abhilfe:
Mit "show variables like 'socket';" zum Beispiel in phpMyAdmin den Socket-Pfad ermitteln. Bei mir ist das /run/mysqld/mysqld.sock und dann in /usr/local/FHEM/app/scripts/fhem.sh als Environment Variable einfügen:  export MYSQL_UNIX_PORT=/run/mysqld/mysqld.sock

Dann klappt DBLog auch mit MySQL/MariaDB.




Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 2722
Antw:Mysql DBlog auf Synology NAS mit MariaDB und ActivePerl
« Antwort #2 am: 20 November 2015, 14:01:26 »
Dazu braucht man keine phpmyadmin (o.Ä.) sondern es reicht die mysql-Konsole:
show variables like 'socket';
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| socket        | /var/run/mysqld/mysqld.sock |
+---------------+-----------------------------+
1 row in set (0.00 sec)
- Bitte um Input für Output
- When there is a Shell, there is a Way

FHEM auf Gentoo/Ubuntu-Server
incl. CUL (433,868), JeeLink und SISPM

Offline Mohrengemuse

  • New Member
  • *
  • Beiträge: 6
Antw:Mysql DBlog auf Synology NAS mit MariaDB und ActivePerl
« Antwort #3 am: 17 Dezember 2016, 16:19:05 »
Habe nun selbst die Lösung gefunden. Die Verbindung kommt tatsächlich nicht zustande, weil ein falscher Socket benutzt wird.

Abhilfe:
Mit "show variables like 'socket';" zum Beispiel in phpMyAdmin den Socket-Pfad ermitteln. Bei mir ist das /run/mysqld/mysqld.sock und dann in /usr/local/FHEM/app/scripts/fhem.sh als Environment Variable einfügen:  export MYSQL_UNIX_PORT=/run/mysqld/mysqld.sock

Dann klappt DBLog auch mit MySQL/MariaDB.

Ich habe den gleichen Fehler, ich hab den Ordner FHEM aber nicht in local, wo muss ich die Variable ändern damit das ganze funktioniert?

Gruß Mohrengemuse