Ankündigung

Einklappen
Keine Ankündigung bisher.

Raspberry Image Version 2.2 mit SmarthomeNG 1.5.1

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Onkelandy
    antwortet
    mysql Standardordner ist: /var/lib/mysql
    sqlite: /usr/local/smarthome/var/db

    Einen Kommentar schreiben:


  • Tontechniker
    antwortet
    Bei der älteren war sie immer unter /var/db/ gespeichert.
    Gruß
    Hans

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo,
    an welchem Ort bzw in welchem Verzeichnis wird die DB gespeichert?
    Danke für die Rückmeldung.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Onkelandy
    Also die Datein mysqlinit gibt es im Verzeichnis /root/. Diese enthält
    Code:
    # BEGIN ANSIBLE MANAGED BLOCK
    DELETE FROM user WHERE USER = 'root' AND HOST = 'localhost';
    CREATE USER 'root'@'%' IDENTIFIED BY 'smarthome';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    CREATE DATABASE smarthome;
    CREATE USER 'smarthome'@'localhost' IDENTIFIED BY 'smarthome';
    GRANT ALL PRIVILEGES ON smarthome.* TO 'smarthome'@'localhost' WITH GRANT OPTION;
    CREATE USER 'smarthome'@'%' IDENTIFIED BY 'smarthome';
    GRANT ALL PRIVILEGES ON smarthome.* TO 'smarthome'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    # END ANSIBLE MANAGED BLOCK
    Ist aber wahrscheinlich nicht ausgeführt worden.
    Ausführen von Hand geht.
    Danke nochmal

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Tatsache? Das wäre bitter, dann hat was nicht geklappt. Hast du ein mysqlinit im root Ordner?
    Dann nach dem Stoppen des Services das hier ausführen: mysql -uroot -proot mysql < /root/mysqlinit

    Ansonsten bitte gerne mal die Datei anlegen und danach ausführen. Dann sollten alle User und Datenbank hergestellt werden...
    Code:
            DELETE FROM user WHERE USER = 'root' AND HOST = 'localhost';
            CREATE USER 'root'@'%' IDENTIFIED BY 'smarthome';
            GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
            CREATE DATABASE smarthome;
            CREATE USER 'smarthome'@'localhost' IDENTIFIED BY 'smarthome';
            GRANT ALL PRIVILEGES ON smarthome.* TO 'smarthome'@'localhost' WITH GRANT OPTION;
            CREATE USER 'smarthome'@'%' IDENTIFIED BY 'smarthome';
            GRANT ALL PRIVILEGES ON smarthome.* TO 'smarthome'@'%' WITH GRANT OPTION;
            FLUSH PRIVILEGES;

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Onkelandy DANKE

    Das hat mich weiter gebracht. Allerdings stimmt das neue WIKI zu mysql nicht bzw. verhält sich das image 2.0.1 bei mir anders:
    • Datenbank smarthome-DB ist noch nicht angelegt
    • user smarthome ist noch nicht angelegt (Demzufolge auch kein Passwort)
    • user root hat kein Passwort (Deswegen ist ein Login via phpmyadmin nicht möglich)
    Wenn man das nachholt, klappt es.
    Zuletzt geändert von Sisamiwe; 09.10.2017, 19:49. Grund: Getestet

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    schloessl Du schreibst:
    In der 2.0 hatte ich eine eigene MariaDB angelegt und ein Backup erzeugt.
    Die Lösung läuft unter 2.0 problemlos. Ich vermute ein Rechteproblem.

    Hast du die Probleme also erst mit 2.0.1? Dort ist alles schon angelegt.. Infos siehe Wiki. Ich habe mal getestet, eine Datenbank in die bestehende zu importieren. Via phpmyadmin auch nach Anpassen sämtlicher PHP Optionen dauerte das zu lange und brach ab. Via Commandline hat es aber geklappt.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ups, hier die Infos:
    https://sourceforge.net/p/smarthomen...ge/wiki/mysql/

    Wie bei den meisten anderen Service auch, ist es nötig, via systemctl start mysql zu starten. Für dauerhaften Einsatz zusätzlich: systemctl enable mysql

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Onkelandy Könntest Du bitte noch ein paar Informationen zur Konfiguration von phpmyadmin und mariadb im Image 2.0.1 bereitstellen? Im Wiki steht nur, dass es nun mit dabei ist, aber nicht wie es konfiguriert wurden.
    DANKE.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    hat sich erledigt. Mein Fehler.
    Zuletzt geändert von Sisamiwe; 09.10.2017, 07:36.

    Einen Kommentar schreiben:


  • schloessl
    antwortet
    Ich habe auch auf die neuen Version umgestellt. Super gelaufen!!

    Ein kleines Problem habe ich noch.
    In der 2.0 hatte ich eine eigene MariaDB angelegt und ein Backup erzeugt.

    Meine alte DB war unter mysql -u root -pdbaxx erreichbar.. Hier finde ich auch
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    |früher portfolio (meine table ) | jetzt steht hier phpmyadmin
    +--------------------+

    Mit source /usr/local/smarthome/var/eig/portfoliodb_sav/20170921-120150portfolio.sql kann ich meine Datenbank nicht mehr rückladen.

    -- MySQL dump 10.16 Distrib 10.1.23-MariaDB, for debian-linux-gnueabihf (armv7l)
    --
    -- Host: localhost Database: portfolio
    -- ------------------------------------------------------
    -- Server version 10.1.23-MariaDB-9+deb9u1

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

    --
    -- Table structure for table `depwerte`
    --

    DROP TABLE IF EXISTS `depwerte`;
    /*!40101 SET @saved_cs_client = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `depwerte` (
    `_index` int(11) unsigned NOT NULL AUTO_INCREMENT,
    ...
    Per Programm kann die Datenbank nicht mehr angelegt werden.

    mariadb 111 connection refused
    mysqld.sock doesn't exist

    Gibt es hier Rechteprobleme oder ein anderes Passwort?

    Ich stehe auf dem Schlauch!

    Wolfgang

    Ich bin jetzt etwas weiter.
    Der Beitrag
    https://stackoverflow.com/questions/...ld-mysqld-sock
    half mir die DB-Rechte neu zu setzen:
    UPDATE mysql.user SET authentication_string=PASSWORD('dbaxxx') WHERE user='root' AND host='localhost';

    Danach konnte ich meine Datenbank anlegen und den Reload ausführen.
    Unter root und sudo kann ich jetzt alles ausführen.

    Aus smarthome als User smarthome versorge ich den Aufruf mit
    Main Logger : <logging.Logger object at 0x7204ded0>
    Main db : portfolio
    Main host : localhost
    Main rootuser : root
    Main rootPW : dbaxxx
    Main user : smarthome
    in im Init

    def A01_connect_db(self):
    if self._tracetest>0:
    self.logger.info("*************************")
    self.logger.info("A01_CONNECT DB")
    self.logger.info("*************************")

    try:
    return pymysql.connect(host=self._host, user=self._rootuser,
    password=self._rootpassword,
    charset='utf8')
    # charset='utf8',
    # cursorclass=pymysql.cursors.DictCursor)
    if self._traceaktie>0:
    self.logger.info("*************************")
    self.logger.info("CONNECTED TO DB")
    self.logger.info("*************************")

    except pymysql.err.OperationalError as e:
    self.logger.info("Error connecting to mysql: {0}".format(e))
    return False

    #------------------------------------------- A02_check_db --------------------------------------------------------------------
    def A02_check_db(self):

    if self._tracetest>0:
    self.logger.info("hier *************** A02_check_db *******************")

    dbconn = self.A01_connect_db()
    cursor = dbconn.cursor()
    cursor.execute("use `" + self._db + "`")

    # execute SQL query using execute() method.
    cursor.execute("SELECT VERSION()")

    # Fetch a single row using fetchone() method.
    data = cursor.fetchone()
    self._dbversion = data
    if self._traceaktie>0:
    self.logger.info("Database version : {0}".format(self._dbversion))
    # Prüfe ob table vorhanden

    try:
    self.logger.info("Prüfe ob Database {0} vorhanden ist!".format(self._db))
    cursor = dbconn.cursor()
    self._sw_DBfehlt = False
    self.logger.info("Database {0} ist vorhanden ".format(self._db))

    except pymysql.err.OperationalError as e:
    ## self.logger.info("Error use Database: {0}".format(e))
    raise
    self.logger.info("Database {0} nicht vorhanden ".format(self._db))
    self._sw_DBfehlt = True
    Das Ergebnis ist
    File "/usr/local/smarthome/plugins/aaportfolio/__init__.py", line 153, in __init__
    self.A02_check_db()
    File "/usr/local/smarthome/plugins/aaportfolio/__init__.py", line 216, in A02_check_db
    cursor = dbconn.cursor()
    AttributeError: 'bool' object has no attribute 'cursor'
    Die Lösung läuft unter 2.0 problemlos. Ich vermute ein Rechteproblem.

    Wer kann mir helfen?

    Zuletzt geändert von schloessl; 05.10.2017, 18:44. Grund: Neuere Erkenntnisse brachten mich weiter, jedoch nicht zum Ziel.

    Einen Kommentar schreiben:


  • schuma
    antwortet
    So, ich habe am langen Wochenende nun auch den Umstieg gemacht.
    Hat eigentlich alles super funktioniert.

    Zwei Dinge musste ich noch ändern:

    Ich musste bei dem Pi3 unbedingt die Bluetooth Schnittstelle deaktivieren. Ansonsten hatte ich verzögerungen beim Schalten über KNXD von manchmal bis zu 10Sekunden.
    Nach dem Deaktivieren funktioniert wieder alles wie gewohnt.
    In der /boot/config.txt folgendes einfügen:
    Code:
     dtoverlay=pi3-disable-bt
    Und dann noch ein:
    Code:
     sudo systemctl disable hciuart
    Und ich musste die Rechte für das Dashbuttonplugin noch setzen. Aber das sollte ja klar sein, wenn man ein Plugin startet...
    Code:
     sudo setcap cap_net_raw=eip /usr/bin/python3.4 sudo setcap cap_net_raw=eip /usr/sbin/tcpdump
    Auf jeden Fall vielen Dank an Onkelandy!
    Zuletzt geändert von schuma; 04.10.2017, 11:29.

    Einen Kommentar schreiben:


  • Hochpass
    antwortet
    erledigt...
    Zuletzt geändert von Hochpass; 03.10.2017, 20:31.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    https://github.com/smarthomeNG/ansible

    Einen Kommentar schreiben:


  • ratzi82
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Wenn Interesse besteht, kann ich auch die Ansible Playbooks veröffentlichen, die ich zum Erstellen des Images genutzt habe.
    Ja sehr gerne, am besten in einem eigenen repo auf der smarthomeNG Github Seite.

    Wir machen gerade das gleiche für Docker und

    Msinn

    hat einen Bereich dafür angelegt.

    https://github.com/smarthomeNG/docker

    Für Ansible dann entsprechend:

    https://github.com/smarthomeNG/ansible

    fände ich gut.

    Gruß,
    Henning

    Einen Kommentar schreiben:

Lädt...
X