FHEM Forum

FHEM => Sonstiges => Thema gestartet von: MadMax am 23 Juli 2021, 12:55:54

Titel: Gelöst: DBLog, MariaDB externe SSD
Beitrag von: MadMax am 23 Juli 2021, 12:55:54
Hallo Zusammen,

ich habe an meine RPi 4 eine Externe 16gb SSD angeschlossen wo ich meinen MariaDB drauf auslagern wollte.
Das funktioniert soweit auch, nur werden mir die Plots jetzt teilweise unvollständig angezeigt.

Im Log habe ich dazu auch merkwürdige Meldungen. Teilweise werden die Plots aber auch vollständig angezeigt.


2021.07.23 12:42:14 2: DbLog DbLog.PV -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152.

2021.07.23 12:42:14 2: DbLog DbLog.PV - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:14 2: DbLog DbLog.Verbraucher - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:14 2: DbLog DbLog.Verbraucher - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:15 1: PERL WARNING: DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbLog.pm line 3696.
2021.07.23 12:42:15 2: DbLog DbLog.SMA_EM -> Error table history - DBD::mysql::st execute_array failed: MySQL server has gone away [err was 2006 now 2000000000]
executing 7 generated 7 errors at ./FHEM/93_DbLog.pm line 2114.

2021.07.23 12:42:15 2: DbLog DbLog.SMA_EM -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152.

2021.07.23 12:42:15 1: PERL WARNING: DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbLog.pm line 3696.
2021.07.23 12:42:15 1: PERL WARNING: DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbLog.pm line 3696.
2021.07.23 12:42:15 2: DbLog DbLog.HKV - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Lost connection to MySQL server at 'handshake: reading initial communication packet', system error: 104 at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:15 1: PERL WARNING: DBD::mysql::st execute failed: Lost connection to MySQL server during query at ./FHEM/93_DbLog.pm line 3696.
2021.07.23 12:42:15 2: DbLog DbLog.HKV - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:16 2: DbLog DbLog.WP - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:16 2: DbLog DbLog.HKV - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:16 2: DbLog DbLog.Heizstab - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:17 2: DbLog DbLog.SMA_EM -> Error table history - DBD::mysql::st execute_array failed: MySQL server has gone away [err was 2006 now 2000000000]
executing 3 generated 3 errors at ./FHEM/93_DbLog.pm line 2114.

2021.07.23 12:42:17 2: DbLog DbLog.SMA_EM -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152.

2021.07.23 12:42:18 2: DbLog DbLog.Heizstab -> Error table history - DBD::mysql::st execute_array failed: Lost connection to MySQL server during query [err was 2013 now 2000000000]
executing 1 generated 1 errors at ./FHEM/93_DbLog.pm line 2114, <GEN20> line 23.

2021.07.23 12:42:18 2: DbLog DbLog.Heizstab -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152, <GEN20> line 23.

2021.07.23 12:42:19 2: DbLog DbLog.SMA_EM - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:21 2: DbLog DbLog.WP -> Error table history - DBD::mysql::st execute_array failed: Lost connection to MySQL server during query [err was 2013 now 2000000000]
executing 1 generated 1 errors at ./FHEM/93_DbLog.pm line 2114.

2021.07.23 12:42:21 2: DbLog DbLog.WP -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152.

2021.07.23 12:42:21 2: DbLog DbLog.SMA_EM - DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) at ./FHEM/93_DbLog.pm line 3314.

2021.07.23 12:42:23 2: DbLog DbLog.WP -> Error table history - DBD::mysql::st execute_array failed: Lost connection to MySQL server during query [err was 2013 now 2000000000]
executing 1 generated 1 errors at ./FHEM/93_DbLog.pm line 2114.

2021.07.23 12:42:23 2: DbLog DbLog.WP -> Error rollback history - DBD::mysql::db rollback failed: Turning on AutoCommit failed at ./FHEM/93_DbLog.pm line 2152.


Ich habe die SSD gemountet unter "/ssd/" die Datenbankdateien aus "/var/lib/mysql" kopiert, die Rechte wie im Original Ordner vergeben.
Dann unter "/etc/mysql/mariadb.conf.d" die "50-server.cnf" bearbeitet, den neuen Pfad bei "datadir" angegeben.

Alles neugestartet.

Hat hier jemand eine Idee?

Gruß
Max
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: DS_Starter am 23 Juli 2021, 13:17:02
Hallo Max,

ich denke der Hauptgrund ist dass die DB die Verbindung abbaut:


DBD::mysql::st execute_array failed: MySQL server has gone away


Alles andere dürften Folgefehler sein.

Kontrolliere mal die Servervariable max_allowed_packet. Ansonsten ist Google dein Freund was "MySQL server has gone away" betrifft, z.B. hier https://praxistipps.chip.de/error-mysql-server-has-gone-away-so-beheben-sie-die-fehlermeldung_105684

Grüße,
Heiko
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: MadMax am 23 Juli 2021, 14:43:32
Hallo Heiko,

danke für den Tip, leider ändert dies nix und Google hilft mir da auch nicht weiter, ich habe noch die Timeouts angepasst aber irgendwie möchte das alles nicht.

Gruß
Max
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: DS_Starter am 23 Juli 2021, 14:48:01
Zeig doch mal bitte deine Serverparameter. Vllt. fällt mir oder einem anderen User etwas auf.
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: DS_Starter am 23 Juli 2021, 14:49:15
Platte ist auch nicht voll ?
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: MadMax am 23 Juli 2021, 14:50:17
Nein, nur die 2,3gb von der Datenbank. Die soll nur dafür sein.
Die ssd hat 16gb und ist von Samsung, über USB 3.0 -> SATA angeschlossen.
Formatiert mit exFat.


#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

# this is read by the standalone daemon and embedded servers
[server]

# this is only for the mysqld standalone daemon
[mysqld]

#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
#datadir = /ssd/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

#
# * Fine Tuning
#
key_buffer_size = 16M
#key_buffer_size = 64M
max_allowed_packet = 512M
thread_stack = 192K
thread_cache_size       = 8

# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10

#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size        = 16M
#query_cache_limit = 8M
#query_cache_size        = 64M

#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Enable the slow query log to see queries with especially long duration
#slow_query_log_file = /var/log/mysql/mariadb-slow.log
#long_query_time = 10
#log_slow_rate_limit = 1000
#log_slow_verbosity = query_plan
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size   = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!

#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates you can use for example the GUI tool "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
#
# Accept only connections using the latest and most secure TLS protocol version.
# ssl-cipher=TLSv1.2


#
# * Character sets
#
# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
# utf8 4-byte character set. See also client.cnf
#
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

#
# * Unix socket authentication plugin is built-in since 10.0.22-6
#
# Needed so the root database user can authenticate without a password but
# only when running as the unix root user.
#
# Also available for other users if required.
# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/

# this is only for embedded server
[embedded]

# This group is only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]

# This group is only read by MariaDB-10.0 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mariadb-10.0]



Aktuell läuft die DB wieder auf der sd vom Pi.
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: DS_Starter am 23 Juli 2021, 14:58:07
Möglicherweise waren/sind deine kopierten Datenbankdateien nicht i.O. ?
Könnte ich mir jedenfalls vorstellen dass die DB dann so rumzickt.
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: MadMax am 23 Juli 2021, 15:00:05
Also eine neue DB anlegen?
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: DS_Starter am 23 Juli 2021, 15:04:31
Ja, ich würde ein Backup/Export machen mit  mysqldump nativ.
Dann die Lage der Datendateien anpassen, eine neue DB anlegen und den dump reinziehen. Tabellen sollten dann automatisch richtig angleget werden.
Dan DbLog Parameter anpassen und weitermachen.
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: Wernieman am 23 Juli 2021, 15:04:58
Mal geguckt, ob USB Fehler wirft? Oder i/o Fehler des Device?

z.B.
zgrep -i i/o /var/log/kern.log*

Was für Rechte hat überhaupt der Mountpoint?

Du hättest die SSD auch einfach in den mysql-Ordner mounten können. Bei Unix muß nicht ein Device auf oberster Ebene sein ...
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: MadMax am 23 Juli 2021, 15:21:18
Vielen Dank,
Werde ich ausprobieren und noch Infos liefern.
Hatte nicht so schnell mit Antworten gerechnet.
Jetzt ist erstmal Besuch da.

Gruß
Max
Titel: Antw:DBLog, MariaDB externe SSD
Beitrag von: MadMax am 25 Juli 2021, 16:41:07
Hallo,

der Fehler sitzt meistens 30cm vor dem Bildschirm...

Ich hatte mal eure Tipps versucht aber bin nicht zum erhofften Erfolg gekommen.

Das Problem war, eine Datenbank zu kopieren bei laufenden SQL Server und Fhem, dadurch ist die Datenbank wahrscheinlich Inkonsistent oder so geworden. (irgendwie auch logisch das man das nicht macht)

Auf jeden Fall hatte ich dann Fhem und dien SQL Server gestoppt, die DB auf die SSD Kopiert, die Äderungen in der Konfig vorgenommen, SQL Server gestartet, FHEM gestartet und jetzt scheint alles zu passen :)

Danke.

Gruß
Max
Titel: Antw:Gelöst: DBLog, MariaDB externe SSD
Beitrag von: Wernieman am 25 Juli 2021, 17:41:52
mySQL hällt viel im Speicher, d.h. im laufenden Betrieb sind die Dateien der DB nicht konsistent. Deshalb soll man so auch keine DB sichern 8Backup)

Wenn mySQL im laufenden betrieb abschmiert, ist deshalb IMMER ein Crash-Recovery-nötig. Der kann funktionieren, muß aber nicht. Und Laut Murphy, genau wenn man es braucht ....
Titel: Antw:Gelöst: DBLog, MariaDB externe SSD
Beitrag von: MadMax am 25 Juli 2021, 20:58:53
Alles klar, danke.

Da lernt man draus.