Forum: PC Hard- und Software MariaDB 10.2.4 -> Fake Versionsnummer zurückgeben


von Rinnder (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Für ein Programm, welches explizit die Versionsnummer eines MySQL 
Servers abfragt,
habe ich einen MariaDB 10.2.4 Server installiert.

Wenn meine My.ini so aussieht:
[mysqld]
datadir=C:/Program Files/MariaDB 10.2/data
port=3300
version=4.1.22
old_passwords=1
secure-auth = OFF
fake_version=4.1.22

[client]
port=3300
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin

startet MariaDB, aber das programm bringt die Fehlermeldung im Anhang.
Wenn meine My.ini so aussieht:
[mysqld]
datadir=C:/Program Files/MariaDB 10.2/data
port=3300
version=4.1.22
old_passwords=1
secure-auth = OFF
fake_version=4.1.22

[client]
port=3300
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin

startet MariaDB NICHT.
Fehler ist dann:
2017-03-29 13:07:24 8008 [ERROR] C:\Program Files\MariaDB 
10.2\bin\mysqld.exe: unknown variable 'fake_version=4.1.22'
2017-03-29 13:07:24 8008 [ERROR] Aborting

Laut der Anleitung, sollte es aber funktionieren:
https://jira.mariadb.org/browse/MDEV-7780


An was kann das liegen?
Was muss ich ändern, um Maria DB zu starten und auch eine gefakte 
Versionsnumemr zurückzugeben?

von H. E. (hobby_elektroniker)


Lesenswert?

Hast du auch schon daran gedacht, dass die Software die MySQL Version 
abfragt um gewährleisten zu können das alle Features fehlerfrei 
funktionieren und nicht um die Anwender zu verärgern? Welchen Vorteil 
bringt es, wenn die Versionsüberprüfung übergangen werden kann und 
später manche Dinge nicht zuverlässig arbeiten bzw. man sich darauf 
nicht verlassen kann? Was ist der Hintergrund für dein Vorhaben?

Ich habe davon noch nie gehört, dass man die Version faken kann. 
Sinnvoll scheint es auch obigen Gründen nicht. Du könntest mal nur
1
version=4.1.22

versuchen

Die Variable fake_version gibt es auch nicht und offensichtlich kannst 
du sie so auch nicht hinzufügen.
1
SHOW VARIABLES WHERE Variable_name = "version";
2
SHOW VARIABLES WHERE Variable_name = "fake_version";

Wo genau liegt jetzt der Unterschied zwischen den beiden "Wenn meine 
My.ini so aussieht:" ?

Konnte da keinen finden und beide Variablen "version" und "fake_version" 
macht irgendwie auch keinen Sinn! :)


Was genau liest die Methode aus in der Software aus?
1
$this->getVersion()

Ist es das?
1
/**
2
* Get the version of the database connector.
3
*
4
* @return string The database connector version.
5
*
6
* @since 12.1
7
*/
8
public function getVersion()
9
{
10
$this->connect();
11
12
    return mysqli_get_server_info($this->connection);
13
}

: Bearbeitet durch User
von Rinnder (Gast)


Lesenswert?

Rinnder schrieb:
> Laut der Anleitung, sollte es aber funktionieren:
> https://jira.mariadb.org/browse/MDEV-7780

H. E. schrieb:
> Was genau liest die Methode aus in der Software aus?

Das weiss ich nicht. Habe keinen Quellcode.

Der Hersteller der Software will keine MySQL > 4.1.22 vertreiben, da er 
seine Mietdatenbank damit geschäftlich absichert.

Wer mitprobieren will:
http://www.cao-faktura.de/download/cao-faktura/

von DraconiX (Gast)


Lesenswert?

Ich verstehe es nicht... Wenn du die 10.2.4 laufen hast, diese ja vom 
diesem Faktura unterstützt wird, warum willst du sie dann "downgraden" 
auf 4.1.22??

von Toni Tester (Gast)


Lesenswert?

Kann ich leider gerade nicht testen, aber nehme mal an, das hängt 
hiermit zusammen: https://jira.mariadb.org/browse/MDEV-10541
Sprich, eine Lösung scheint nicht in unmittelbarer Nähe zu sein - da 
hilft wohl wirklich nur eine MySQL-4-Installation oder selbst zur 
Tastatur und zum Compiler zu greifen.

Offtopic: Laut Hersteller 
(http://www.cao-faktura.de/produkte/cao-faktura/) ist das keine böse 
(Gewinnerzielungs-) Absicht, sondern hat "technische Gründe", warum es 
nur mit MySQL < 5 läuft.
Aber eine Software, bei der im Jahre 2017 auf der Website ein fetter 
gelber Hinweis prangt, dass Windows-7-Nutzer das Programm nicht im 
Programme-Ordner installieren sollten, weil es da Rechteprobleme gibt 
(s. obigen Link), würde ich zumindest nicht mehr neu als Produktivsystem 
installieren, zumindest jedoch im internen lifecycle as deprecated 
kennzeichnen - sprich, innerhalb der nächsten ein, zwei Jahre zu einer 
anderen Lösung migrieren -, da die Entwicklung hier offenbar vor 
siebeneinhalb Jahren sowas stehen geblieben ist (vulgo "Abandonware") - 
auch wenn der Hersteller das natürlich anders sieht (vulgo "Cash Cow").

von H. E. (hobby_elektroniker)


Lesenswert?

Dir bleiben wohl nur die Optionen:
- Andere Software (die wohl unwahrscheinlichste, oder besteht die 
Möglichkeit noch?)
- Installation von MySQL < 5.0
- Zugriff auf eine externe Datenbank, die MySQL < 5.0 ist (z.B. durch VM 
oder externer Server)
- Software-Check direkt in der Software manipulieren mit genannten 
Risiken (absolut NICHT zu empfehlen, es wird nicht umsonst darauf 
hingewiesen, da Mysql 4 und 5 schon erhebliche Unterschiede aufweisen!)

von Εrnst B. (ernst)


Lesenswert?

Spricht was dagegen, einfach ein MySQL 4 zu installieren, wenn deine 
Software ein MySQL 4 will?

Notfalls in Docker oder einer VM weggekapselt, wenn derselbe Server 
gleichzeitig noch eine aktuelle MariaDB laufen haben soll, und du die 
"DLL-Hell" fürchtest.


Mehr Posts zu dem Thema (Warum kommen nur alle auf die Besch*** Idee, 
ein RasPi wäre ein guter DB-Server???)

Beitrag "MySQL4 Datenbank "emulieren" oder "trancoden""
Beitrag "[Raspi] MySql auf USB Stick Raid auslagern -> Sinnvoll??"
https://www.mikrocontroller.net/topic/423678
Beitrag "MySql4 auf Synology -> Error"

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Rinnder schrieb:
> Für ein Programm, welches explizit die Versionsnummer eines MySQL
> Servers abfragt,
> habe ich einen MariaDB 10.2.4 Server installiert.
>
> Wenn meine My.ini so aussieht:
> [mysqld]
> datadir=C:/Program Files/MariaDB 10.2/data
> port=3300
> version=4.1.22
> old_passwords=1
> secure-auth = OFF
> fake_version=4.1.22

Eine Variable "fake_version" gibt es nicht. Du kannst nur "version" 
überschreiben.

> startet MariaDB, aber das programm bringt die Fehlermeldung im Anhang.

Copy-Paste des Textes wäre hilfreich gewesen.

> Was muss ich ändern, um Maria DB zu starten und auch eine gefakte
> Versionsnumemr zurückzugeben?

Das Programm wertet anscheinend nicht die Versionsnummer aus, die von

1
SELECT VERSION();

oder

1
SHOW GLOBAL VARIABLES LIKE 'version';

zurückgegeben wird, sondern die Versionsnummer im "Hello Packet" - das 
ist das erste TCP-Packet das der Server nach der Kontaktaufnahme zum 
Client zurückschickt. Hier wird wegen diverser Kompatibilitäts- 
Hickhacks die "echte" Versionsnummer von MariaDB mit einem Prefix 
"5.5.5-" zurückgegeben (in der Fehlermeldung ja schön zu sehen). Dieser 
Prefix ist hartcodiert und kann nur durch Ändern des Quellcodes von 
MariaDB verändert werden.

Mit anderen Worten: geht nicht. Dein CAO-Faktura ist gründlich kaputt- 
designed. Schmeiß es dahin, wo es hingehört: auf den Müll.

von Rinnder (Gast)


Lesenswert?

Naja.
Die MariaDB könnte auf jedem NAS laufen.
MySQL4 nicht :-(

Also doch:
Εrnst B. schrieb:
> Beitrag "MySQL4 Datenbank "emulieren" oder "trancoden""
> Beitrag "[Raspi] MySql auf USB Stick Raid auslagern -> Sinnvoll??"
> Beitrag "Modul sinnvoll oder nicht?"
> Beitrag "MySql4 auf Synology -> Error"

Will da nicht extra einen PC mit 400W Tag und Nacht laufen lassen !!!

Axel S. schrieb:
> Mit anderen Worten: geht nicht. Dein CAO-Faktura ist gründlich kaputt-
> designed. Schmeiß es dahin, wo es hingehört: auf den Müll.

Habe schon alle Kunden usw drinnen. Das alles zu portieren, wenn 
überhaupt möglich.
Ausserdem alle Belege..... Uiiii

von Peter II (Gast)


Lesenswert?

Rinnder schrieb:
> Will da nicht extra einen PC mit 400W Tag und Nacht laufen lassen !!!

es gibt auch PCs mit 30W

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Rinnder schrieb:
> Will da nicht extra einen PC mit 400W Tag und Nacht laufen lassen !!!

Nimm einen Intel NUC*. So etwas ist mit unter 10 Watt primärseitiger 
Leistungsaufnahme zu betrieben, also kaum mehr als Deine andernorts 
geäußerte Raspberry-Idee, und kann mit einer "richtigen" 2.5"-Festplatte 
oder -SSD betrieben werden.

Beispiele:

https://www.heise.de/preisvergleich/gigabyte-brix-gb-bace-3000-a1333502.html
https://www.heise.de/preisvergleich/asrock-beebox-n3000-b-bb-schwarz-90bxg2f01-a10ga0p-a1275103.html
https://www.heise.de/preisvergleich/intel-nuc-kit-nuc5cpyh-pinnacle-canyon-boxnuc5cpyh-a1273270.html

*) oder Gigabyte Brix oder Asrock BeeBox

von KevIn (Gast)


Lesenswert?

An den Raspi kann man auch eine Usb Hdd ranflanschen.

von DraconiX (Gast)


Lesenswert?

KevIn schrieb:
> An den Raspi kann man auch eine Usb Hdd ranflanschen.

Das ist genauso Sinnbefreit wie den Lamborghini vor der Tür mit E10 
Benzin zu tanken. Oder Kartoffelsalat ohne Mayonaise. Oder Sex mit 
Kondomen... das ist alles nichts halbes und nichts ganzes.

Wenn man eine DB aufsetzt will man wenigstens eine gewisse 
Grundperformance haben. Von dem ganzen Kabelklimborium, dem herumfliegen 
externer Komponenten und die damit einhergehenden Unsicherheit das mal 
irgendwann / irgendwie das Kabel da rausgezogen wird - will ich garnicht 
dran denken.

Das ist alles ne Bastellösung, will man es richtig machen nimmt man sich 
ein NAS oder baut sich auf Basis eines NUC etc... sein eigenes auf. Die 
dinger kosten ja nun auch nicht wirklich mehr in der Bucht, sollte das 
das Totschlagargument sein. Der Energieverbrauch bei diesen Systemen ist 
dem eines Pi gleichwertig wenn nicht sogar geringer - und die haben GBit 
ETH.

von Karlo K. (ponos)


Lesenswert?

DraconiX schrieb:
> Oder Kartoffelsalat ohne Mayonaise

Asso??? https://www.ichkoche.at/wiener-erdaepfelsalat-rezept-3154
Wo steht da was von Mayonaise?

DraconiX schrieb:
> Wenn man eine DB aufsetzt will man wenigstens eine gewisse
> Grundperformance haben

Mein MySQL5 Server auf dem RPI frisst mit 5 Clients 25% auf alle 4 Kerne 
verteilt.RAM ist 800MB für die DB freigegeben.

DraconiX schrieb:
> Das ist alles ne Bastellösung, will man es richtig machen nimmt man sich
> ein NAS oder baut sich auf Basis eines NUC etc... sein eigenes auf.

Das ist ja das Problem des TO.
Auf den meisten NAS Hütten ist zwar ein MariaDB drauf, aber dieses 
veraltete (und von der Bedienung her furchtbare)
CAO Faktura lässt keine MariaDB zu.
MySQL4 auf einem NAS einrichten ist nicht jedermans Sache.

Darum bieten ja einige ihre Dienstleistung an:
https://www.ramser-elektro.at/shop/software-und-aehnliches/sd-karte-mit-vorkonfigurierten-mysql4-server-fuer-raspberry-pi-23/

Würde aber auch alles von der SD Karte auf eine USB HDD (mechanisch!!!) 
verschieben.

von H. E. (hobby_elektroniker)


Lesenswert?

Karlo K. schrieb:
> DraconiX schrieb:
>> Oder Kartoffelsalat ohne Mayonaise
>
> Asso??? https://www.ichkoche.at/wiener-erdaepfelsalat-rezept-3154
> Wo steht da was von Mayonaise?

Ich denke, er wollte mitteilen, dass man auch eine Taschenlampe für die 
Steckdose umbauen kann. Die Nachteile überwiegen mehr als das sie 
nützlich sind. So ist es mit dem RasPi an der Stelle auch. Funktionieren 
tut das sicherlich, aber die Vorteile sind verschwindend gering.

Einen Kundenstamm würde ich aus genannten Gründen nicht damit pflegen 
wollen.

> DraconiX schrieb:
>> Wenn man eine DB aufsetzt will man wenigstens eine gewisse
>> Grundperformance haben
>
> Mein MySQL5 Server auf dem RPI frisst mit 5 Clients 25% auf alle 4 Kerne
> verteilt.RAM ist 800MB für die DB freigegeben.

Kommt auch immer darauf an, was man damit tut. Nutzt man es z.B. für 
HEAP zwecke ist das was anderes, als wenn man persistente Daten 
verwalten möchte. Zudem sollte man dann aber auch keine Schwierigkeiten 
damit haben, MySQL 4 aufzusetzen und das Problem selbst erkennen können. 
Daher fällt schon allein Raspi eigentlich aus. MySQL und Rapsi allein 
schließt eine sinnvolle Benutzung nicht aus. Das stimmt. Aber für die 
beabsichtigte Verwendung eher ungeeignet.

> Würde aber auch alles von der SD Karte auf eine USB HDD (mechanisch!!!)
> verschieben.

Immerhin. Davor ist dann immer noch ein anfälliges "System" das vor dem 
Übertrag zu Datenverluste führen kann. :)

: Bearbeitet durch User
von Karlo K. (ponos)


Lesenswert?

Einen Orange PI könnte man auch bemühen.

Das Problem des TOs ist aber ein anderes.

Er will MariaDB mit diesem CAO Schrott zum laufen bekommen.
So wie ich das sehe auf einem NAS.

von Εrnst B. (ernst)


Lesenswert?

Karlo K. schrieb:
> Er will MariaDB mit diesem CAO Schrott zum laufen bekommen.
> So wie ich das sehe auf einem NAS.

(er hat noch andere Threads dazu gestartet...)

Nicht zwingend MariaDB, sondern MySQL in einer 4er Version (oder 
kompatibel).
Und das "egal wo", nur auf keinen Fall auf einem der 
Windows-Client-Rechner, wo das mit Doppelklick auf den Installer schon 
so gut wie erledigt wäre.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.