![]() |
Datenbank: MySQL • Version: 5.0.51b • Zugriff über: MySQL Direct
Problem mit CREATE DATABASE
Hallo,
ich will mit meinem Programm eine MySQL-Datenbank erstellen, um von anderen Programmen zur Datenbankverwaltung bei der Installation meines Programms unabhängig zu sein. Zur Kommunikation mit dem lokalen Server benutze ich ![]() Nun, wenn ich also meinen Befehl
SQL-Code:
über die übliche Function an den Server schicke, bekomme ich vom Server die Meldung "Can't create Database 'test'; Database exists". Die Datenbank existiert so natürlich nicht.
CREATE DATABASE `testname`
Mit CREATE TABLE (...); funktioniert das Ganze einwandfrei. Ich benutze MySQL 5.0.51b, hier auf Windows XP, ganz normal über den Installer installiert und das Root-Passwort über den anschließenden Konfigurator gesetzt. Woran liegts nun, dass ich keine Databases erstellen darf (mit einem SQL-Manager gehts, und der hat ja auch keine anderen Zugangsdaten als ich - oder?) Über jede noch so hilfreiche Antwort würde ich mich sehr freuen |
Re: Problem mit CREATE DATABASE
Und bist du sicher das es keine Datenbank dieses Namens gibt?
|
Re: Problem mit CREATE DATABASE
Ja, habe das in diversen Variationen ausprobiert.
Jetzt kommt auch der Fehler "Unknown Database 'testdatenbankname'" |
Re: Problem mit CREATE DATABASE
Moin,
nur um sicher zu gehen: Du kennst den Unterschied zwischen CREATE DATABASE und CREATE TABLE? Freundliche Grüße |
Re: Problem mit CREATE DATABASE
AFAIR wird z.B. bei XAMPP automatisch eine Datenbank mit Namen "test" angelegt. Du könntest es ja mal mit einer anderen Syntax versuchen.
SQL-Code:
CREATE DABASE IF NOT EXISTS `Wuppdi`
|
Re: Problem mit CREATE DATABASE
Ehm, *hust*
das mit CREATE TABLE habe ich hier nur erwähnt, um zu zeigen, dass der Fehler wohl nicht an der Schnittstelle zwischen Programm uns Server liegt... Zitat:
Ehm, *hust* das mit CREATE TABLE habe ich hier nur erwähnt, um zu zeigen, dass der Fehler wohl nicht an der Schnittstelle zwischen Programm und Server liegt... Zitat:
Hey, super. Das funktioniert. Jetzt frag ich mich aber: Warum? Wo ist da der große unterschied? Vielen vielen Dank |
Re: Problem mit CREATE DATABASE
Die Unterschiede sind folgende:
- ich habe 2 Buchstaben vergessen :oops: , das muss natürlich DATABASE heißen und nicht DABASE - die DB wird nur angelegt, wenn sie noch nicht existiert, dadurch kommt es zu keinen Fehlermeldungen. Das kann man z.B. sehr gut in Backup/Restore-Scripten verwenden. |
Re: Problem mit CREATE DATABASE
Ich musste grade feststellen, dass dies eine einmalige Aktion war. Jetzt geht es wieder nicht (Fehlermeldung immer noch "Unknown Database,...)
Ich habe unmitelbar vorher diverse Befehle über die Konsole ausprobiert habe (alle von ![]() Kann es vielleicht mit einem dieser Befehle zusammenhängen? Ich schaffe es leider nicht mehr zu rekonstruieren. |
Re: Problem mit CREATE DATABASE
Was sagt denn Show Databases?
|
Re: Problem mit CREATE DATABASE
Danke, dein show databases hat mir aufgezeigt wo der fehler liegt bzw. mich drauf aufmerksam gemacht.
Will ich zu einer Datenbank verbinden die nicht existiert, bzw. zu keiner Datenbank verbunden bin, kann ich auch nicht einmal eine Datenbank erstellen. Und da ich in meinem Programm immer zuerst den künftigen Datenbanknamen einlese versuchte er ohne verbindung ebendiese zu erstellen. Genauso verhält es sich beim ersten Start des Programmes. Es hat noch garkeine Datenbank, also kann ich mich auch nicht am MySQL server anmelden um diese Datenbank überhaupt erst zu erstellen (mein gott klingt das kompliziert) Zum Glück liefert MySQL ja standardmäßig die Datenbank "test" mit. Werde das also so lösen, dass er künftig vor dem erstellen irgendwelcher Datenbanken zur "test" verbindet und dann nach dem erstellen zur neuen Datenbank da muss man erst mal drauf kommen. |
Re: Problem mit CREATE DATABASE
Ich hab zwar keine Ahnung von MySQL, aber solltest du nicht besser eigene DBs zur Verfuegung stellen, anstatt dich auf die mitgelieferten zu stuetzen bzw zu verlassen? Muss dein Programm denn nach dem start sofort mit einer DB verbunden werden?
|
Re: Problem mit CREATE DATABASE
Ich sehe aber keine andere Möglichkeit meine eigene Datenbank zu erstellen. Wie gesagt, man muss ja offensichtlich und logischerweise zum Server verbunden sein und das geht nur wenn man das über eine existierende Datenbank macht.
Gibt es vielleicht die Möglichkeit über einen Konsolenbefehl eine DB zu erstellen. Wenn ja, wie setze ich das in Delphi um? |
Re: Problem mit CREATE DATABASE
Öhm, wenn du einen Mysql-server aufsetzt gibt es immer schon die datenbank mysql, verbind dich einfach mit der. Wenn du dann mit create database deine erstellt hast kannste ja einfach mit "USE testdb" oder tmysqlclient.select_db('testdb'); dorthin wechseln.
|
Re: Problem mit CREATE DATABASE
Richtig, die System-DB muss schon vorhanden sein, sonst dürfte der Server nicht mehr laufen.
|
Re: Problem mit CREATE DATABASE
Das war ja auch mein Plan :)
|
Re: Problem mit CREATE DATABASE
Zitat:
Delphi-Quellcode:
tmysqlclient.db := 'mysql';
|
Re: Problem mit CREATE DATABASE
Ja, ist doch das gleiche wie wenn ich als default "test" nehme, jedenfalls wurde die bei mir auch automatisch mit der MySQL installation eingerichtet. Und wenn ich dann meine Datenbank mit der default erstellt habe, wechsele ich auf ebendiese.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz