XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von kralle »

XAMPP: 8.2.0-0; MySQL 8.2.0; Lazarus: 2.3.0; FPC: 3.3.1; OS: Linux Mint 21.1 Cinnamon

Moin,

ich habe eine kleine Datenbank-App zusammen geklickt.
SQL_001.png
SQL_001.png (13.22 KiB) 814 mal betrachtet
Auf meinem anderen Rechner bekam ich damit auch eine Verbindung zur Datenbank meiner Joomla-Installation bei meinem Provider.
Aber da ich die App dort aber nur dann nutzen kann, wenn ich Kodi und sein MariaDB deinstalliere, dachte ich mir, es müsste doch auch lokal gehen.
Da ich auf diesem Rechner eine XAMPP-Installation zur Verfügung habe, habe ich mittel "phpMyAdmin" eine neue Datenbank angelegt und die genauso genannt,
wie die bei meinem Provider. Auch Benutzername und Passwort sind gleich.
Einziger Unterschied: Beim Provider MySQL 5.7 und hier jetzt 8.2.

Naive dachte ich mir dann:"Brauchst ja nur HOSTNAME und CONNECTOR TYPE ändern und dann läuft es auch lokal."
Also, habe ich im Objektinspektor das hier eingetragen:
SQL_002.png
SQL_002.png (43.34 KiB) 814 mal betrachtet
Wenn ich jetzt zum Test der Verbindung "Connected" auf TRUE setze, bekomme ich diese Fehlermeldung:
SQL_003.png
SQL_003.png (8.73 KiB) 814 mal betrachtet
Ich fand dann noch heraus, das man in MySQL Einstellungen einen Zugriff von überall (0.0.0.0) und nicht nur localhost (127.0.0.1) zulassen sollte.
Brachte aber auch keine Änderung.

Leider helfen die Logfiles auch nicht weiter und Lazarus gibt an dieser Stelle auch keine Fehlermeldung aus.
Starte ich die Anwendung und aktiviere die Verbindung dann, dann erhalte ich die Meldung:
SQL_003.png
SQL_003.png (8.73 KiB) 814 mal betrachtet
Der Server und die Datenbank laufen.

Wo ist mein Denkfehler?

Gruß Heiko
Zuletzt geändert von kralle am Do 1. Jun 2023, 16:48, insgesamt 1-mal geändert.
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

gekd1407
Beiträge: 10
Registriert: Sa 17. Aug 2013, 22:09
OS, Lazarus, FPC: Win10/11pro 64Bit (L 2.2.6 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Marl

Re: XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von gekd1407 »

Moin, Moin,

must Du nicht auch beim Hostname die Instanz mit angeben?

Wenn ich auf meine MS-SQL Express Server in Standartinstallation zugreife...

Server\SQLExpress

Grruß
Karsten

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von kralle »

Moin,

also als ich die Verbindung zum Provider aufgebaut habe, reichte die Host-Adresse.

Was sollte ich dann für XAMPP als Instanz eintragen?

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von hum4n0id3 »

Ich glaube auch localhost und Port 3306, sonst nichts.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von kralle »

Hat leider nichts geändert.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: XAMPP, SQL-Datenbank & Zugriff via Lazarus-App

Beitrag von charlytango »

Bei XAMPP ist die xampp-control dabei - eine Oberfläche mit der man die verschiedenen Services von XAMPP starten, stoppen, verwalten und einstellen kann.
Aktuelle XAMPP Versionen benutzen MariaDB als Datenbank (bei mir unter Win 10: xampp 8.2.20, MariaDB 10.4.27)

- "Instanz" brauchst du nicht -- Hostname und Databasename reicht.

- Sieh nach ob die Datenbank läuft und vor allem unter welchem Port. Oft wird der Port von xampp schon mal verändert wenn er irgendwie belegt zu sein scheint.

- checke nochmal ob die bitness passt. (DB,Zugriffsbibliothek, Lazarus-exe)

- Der TSQLConnector ist eine art Proxy für DB-Verbindungen der mittels ConnectorType selbst versucht herauszufinden welche dll passt. Die Versionserkennung von SQLDB funktioniert bei MariaDB leider nicht (im Source steht da irgend ein launiger Text von wegen "Pech gehabt").

- du kannst statt eines TSQLConnector auch direkt einen bestimmten Connector einer bestimmten Version benutzen (zb TMySQL55Connection). Mittels TSQLDBLibraryLoader kannst du eine bestimmte Bibliothek zuweisen und mit "SkipLibraryVersion" auch die Versionsprüfung ausschalten (die eben bei MariaDB nicht funktioniert)

- ich hatte auch mit
TSQLConnector
ConnectorType=MySQL 5.5
CustomLibraryName=libmysql.dll (Version 5.6.6)
Erfolg.

- Auch libmariadb.dll, also die Zugriffsbibliothek von MariaDB könnnte helfen.

- Bei Verbindungsproblemen mit Lazarus versuche ich zuerst mit Drittsoftware an die DB zu kommen dann weiß ich dass es grundsätzlich möglich ist und nur mehr an der Kombination der Einstellungen liegt. HeidiSQL (auch als portable Version downloadbar) bringt für Windows auch alle DLLs mit die man dann auch gleich in Lazarus verwenden kann. So kann man auch erstmal die Berechtigungen in MariaDB prüfen.
unter Linux weiß ich nicht mit welchem externen Tool man gegen die DB verbinden könnte.

Weiß der Geier warum MariaDB so sträflich in SQLDB wegkommt.

Eine alternative Variante ist ZEOS. (über OPM installierbar). Da kann man die Bibliothek direkt zuweisen und das sollte man auch tun. Dort benutze ich libmariadb.dll in der zur DB passenden Version und das klappt klaglos. Auch ZEOS kännte die Zugriffsbibliothek "erraten" wenn das Property leer ist und unterstützt imho auch MariaDB.

Antworten