AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelle existiert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle existiert nicht

Ein Thema von Delbor · begonnen am 20. Mär 2017 · letzter Beitrag vom 24. Mär 2017
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Tabelle existiert nicht

  Alt 20. Mär 2017, 17:14
Datenbank: MySQL • Version: 5.7.xx • Zugriff über: FireDac
Hi zusammen

Nachdem von den da angesprochenen Problemen das letzte, die vermisste Tabelle, übriggeblieben ist, mach ich mal einen neuen Thread auf.
Die Fehlermeldung, notabene bei offener Verbindung und nachweislich existierender Tabelle:
Zitat:
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EMySQLNativeException mit der Meldung '[FireDAC][Phys][MySQL] Table 'contentmasterdata.kategorien_tabelle' doesn't exist' aufgetreten.
In der Hoffnung, mehr zu erfahren über das, was so abläuft, hab ich eine FDMoniFlatFileClientLink-Komponente auf dem Datenmodul abgelegt. Und das hat mir dann doch noch was genützt - allerdings erst, nachdem ich FDConnectionMySql.ConnectionDefName festgelegt und meine bisherige temporäre Connection deaktiviert hatte.

Die Monitor-Komponente erzeugt standardmässig ein Tracefile. Ich hab das Ding umbenannt und den Pfad in meinen Anwendungsordner verlegt; die so erzeugte txt-Datei finden interessierte im Anhang. Geöffnet sollte sie eventuell in einem Memo ohne Wordwrap oder einer vergleichbaren Umgebung(Notepad etc).

Was mir erstmal auffällt:
Zitat:
. mysql_get_client_info [Ver="5.5.9"]
. mysql_init
. mysql_options [option=1, arg=0]
. mysql_real_connect [host="localhost", user="root", passwd="***", db="contentmasterdata", port=3306, clientflag=198158]
. mysql_get_server_info [Ver="5.7.9-log"]
. mysql_set_character_set [cs_name="utf8"]
Mit mysql_get_client_info nehme ich mal an, ist die libmysql.dll gemeint. Tatsächlich liegen im Windowsverzeichnis zwei der Dinger. Ich hatte allerdings gehofft, wenn ich Vendorlib der Connectionkomponente explizit im OI angebe, dass dann auch diese benutzt wird - da hab ich offensichtlich falsch gedacht.

Interessant wird es ab Zeile 297: Ab da sind die Tabellen aufgelistet, die ich per Show Tables vom Server anfordere.

Dazu muss erstmal gesagt werden: Nach der Installation des Servers habe ich sämtliche Serverdatenbanken, sprich, das komplette Datadir nach F:\Databases1 kopiert - und eben nicht verschoben, damit ich die Originale noch habe, falls irgendwas schiefgeht. Und genau da liegt meine DB "contentmasterdata". Der Server kann also die Infos, die er mir per "Show Tables" zurückliefert, nur von da haben.
Und jetzt wirds geradezu spannend, fast so, wie bei Kommissar Maigret oder Hercule Poirot :da liegt auch die so hartnäckig vermisste Tabelle 'contentmasterdata.kategorien_tabelle'!

Allerdings: Es gibt unter MySQL nicht nur eine Inidatei, sondern meines Wissens mindestens drei (3)!

In C:\ProgramData\MySQL sind dies:
  • MySQL Server 5.7my_2016-04-27T07-29-12.ini und (datadir=C:/ProgramData/MySQL/MySQL Server 5.7\Data)
  • MySQL Server 5.7my_2016-04-20T14-20-39.ini und (datadir=C:/ProgramData/MySQL/MySQL Server 5.7\Data)
in C:\ProgramData\MySQL\MySQL Server 5.7
my.ini (datadir=F:\Databases 1)
Kursiv und in Klammern jeweils die Pfadangabe zum Data-Verzeichnis, wie sie in den einzelnen Ini's angegeben ist.

Was mich etwas (stark) verblüfft, ist, dass MySQL in mehreren verschiedenen Inidateien den Datadir-Pfad ablegt und nicht etwa 2 Pfade (Serverpath & Userpath) bereithält

So, wie ich das sehe, würde es genügen, wenn ich die Pfadangaben so abändere, dass sie dahin zeigen, wo nebst den Serverdatenbanken ach meine DB liegt. Oder gibt es dabei noch zusätzlich etwas zu beachten?

Eines ist sicher: ohne den 'guten alten' SQLMonitor wäre ich jetzt noch mit meinen Ratespielchen beschäftigt...

Gruss
Delbor
Angehängte Dateien
Dateityp: txt SQLMonitor.txt (64,3 KB, 7x aufgerufen)
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (20. Mär 2017 um 17:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.360 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Tabelle existiert nicht

  Alt 21. Mär 2017, 03:54
Ich meine mich zu erinnern (schreibe unterwegs am Handy), dass auch im Installationsverzeichnis im Unterverzeichnis data eine my.ini liegt. Welche benutzt wird und welches datadir benutzt wird sieht man ja leicht im Process Monitor auch ohne das log aus mysql.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Tabelle existiert nicht

  Alt 21. Mär 2017, 07:44
Hi jeanicke

Danke für den Hinweis! Ich hab da gerade mal nachgesehen - das müsste demnach C:\Program Files\MySQL sein. Da liegt tatsächlich eine C:\Program Files\MySQL\MySQL Server 5.7\mydefault.ini. Die enthält aber auf 22 Zeilen gerade mal einen Eintrag.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Tabelle existiert nicht

  Alt 21. Mär 2017, 11:31
Hi zusammem

Nachdem ich nun in allen Inidateien des Servers meinen eigenen DB-Pfad angegeben habe und die bewusste Tabelle weiterhin vermisst wird, hab ich mal die libmysql.dll im Windowsverzeichnis gegen diejenige dder Sererinstallation ausgetauscht. Die Fehlermeldung kommt recht bald: "unterschiedliche Archidekturen...
Der Server hat 64Bit, die ersetzte libmysql hatte 32Bit. Und die neu eingefügte latürnich auch 64Bit. Mit andern Worten: Ich darf den Server neu installieren. Oder sehe ich das falsch?

Eine dumme Frage noch: was ist der ProcessMonitor, von dem jaenicke sprach? Ich hab mal angenommen, dass er damit den SQL-Montior meint, aber da scheine ich falsch zu liegen...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Tabelle existiert nicht

  Alt 21. Mär 2017, 11:38
Process Monitor: https://technet.microsoft.com/de-de/...ssmonitor.aspx
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Tabelle existiert nicht

  Alt 21. Mär 2017, 12:15
Hi nahpets

Danke für den link!

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz