Datenbankerzeugung auf dem MySQL-Server ist fehlgeschlagen

Gesperrt
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Datenbankerzeugung auf dem MySQL-Server ist fehlgeschlagen

Beitrag von phpchris »

Hallo, ich habe beim Setup ein Problem.

Ich versuche, die Version 4.6.1 auf einem Webserver zu installieren und habe soweit alles korrekt ausgefüllt.
Nun sagt mir das setup folgende Meldung:

Code: Alles auswählen

Setup hat versucht, eine Testdatenbank zu erzeugen, jedoch ist die Datenbankerzeugung fehlgeschlagen. Bitte vergeben Sie passende Berechtigungen für den eingegebenen Datenbankbenutzer, fragen Sie ihre Administrator, oder erstellen Sie die Datenbank händisch.
Der DB-User hat alle Rechte auf seiner Datenbank, darf aber keine weitere Erzeugen.
Wie installiere ich dennoch?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

hmm... bricht das setup dann ab ?
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ist die Datenbank, die du angegeben hast, schon angelegt?
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Ja, das Setup bietet mir nicht mehr die Möglichkeit, weiter zu gehen.

Und ja, die DB ist bereits angelegt.
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

hatte gestern auch das problem lege mal nen 2ten datenbanknutzer an und versuchs mit dem bei mir hat es geklappt
greets
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Kann ich leider nicht, ist ein Hosting-Paket, bei dem nur der User geht.
Ins phpMyAdmin komme ich mit den Zugangsdaten und die DB gibt es da auch schon.
Die DB heisst genauso wie der User, vielleicht hakt da was?
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Ist wohl in der Tat ein Bug, wird noch gelöst
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Kann ich das irgendwo umgehen...
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Ich möchte nicht drängeln, aber mein Kunde wartet...
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Nicht ohne weiteres

ich kann da auch nichts dafür, daß dein Kunde drängelt ;)
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

timo hat geschrieben:Nicht ohne weiteres

ich kann da auch nichts dafür, daß dein Kunde drängelt ;)
Ne, schon klar.

Ich schau mal ins Setup...
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Ich konnte den Fehler umgehen, indem ich in /setup/lib/function.mysql.php die Funktion checkMySQLDatabaseCreation geändert habe.
Nun versucht er nicht mehr, eine Datenbank anzulegen, sondern führt ein einfaches SELECT USER() aus und gibt somit TRUE zurück.

Danach klappte die Installation perfekt!

Code: Alles auswählen

function checkMySQLDatabaseCreation ($db, $database)
{
	if (checkMySQLDatabaseExists($db, $database))
	{
		return true;	
	} else {
	
		$db->query("SELECT USER()");
		
		if ($db->Errno != 0)
		{
			return false;	
		} else {
			return true;
		}
	}
}
thomas_e
Beiträge: 2
Registriert: Mi 2. Nov 2005, 13:55
Kontaktdaten:

Beitrag von thomas_e »

Hatte das gleiche Problem.

hosteurope.de WebPack M

http://etService.de/phpinfo.php

mfg
thomas_e
thomas_e
Beiträge: 2
Registriert: Mi 2. Nov 2005, 13:55
Kontaktdaten:

Beitrag von thomas_e »

sodele, habs bissl genauer...

Bei mir tut der "USE $database" net, weil der Name der DB im Format db1234567-1 aufgebaut ist. Das Minuszeichen im Namen ist zwar mysql-konform, aber im phpmyadmin gibts damit auch ne Fehlermeldung.
Deshalb gibt die Funktion checkMySQLDatabaseUse immer false zurück.

function checkMySQLDatabaseUse ($db, $database)
{
$db->query("USE $database");

if ($db->Errno == 0)
{
return true;
} else {
return false;
}
}

Der USE-Befehl wird aber später nie verwendet, somit läuft das setup hinterher korrekt :-)

Hab einfach im else-Zweig aus dem "false" ein "true" gemacht, dann passts.

mfg
thomas_e
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Ist in der Tat ein Bug (wobei eher ein MySQL-Bug)

und zwar muß die Funktion checkMySQLDatabaseUse mit dieser ausgetauscht werden:

Code: Alles auswählen

function checkMySQLDatabaseUse ($db, $database)
{
	if (@mysql_select_db($database, $db->Link_ID))
	{
		return true;	
	} else {
		return false;	
	}
}
Ist gelöst für die nächste Version.
Gesperrt