Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

MySQL, PostgreSQL, SQLite
mellesoft
Posts: 6
Joined: 2003-09-12 10:46

Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by mellesoft » 2004-01-07 21:27

Ich konnte leider dazu nicht wirklich was finden, ich hoffe ich kann die Frage hier stellen.
Seit dem Update von MySQL auf Version 4 kann ich im Confixx für einen User zwar eine DB anlegen, die als root im phpmyadmin zugreifbar unnd sichtbar ist. Leider kann der User zu dem die DB eigentlich gehört, auf diese nicht zu greifen. Somit legt Confixx die DB zwar an, aber diese wird dem User nicht zugeordnet. Gibt es dazu eine Lösung bzw kann mir evtl jemand helfen?

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by flo » 2004-01-07 22:06

Der Aufbau der Authentifizierungstabellen hat sich von MySQL 3 auf MySQL 4 verändert, was zur Folge hat, daß der von Confixx benutzte insert-Befehl dann nicht mehr funktioniert.

Ich denke, die fertige Lösung solltest Du hier über die Suche oder im confixx-forum finden, ansonsten schau Dir per myadmin an, wie Du freigeben möchtest und ändere dann das jeweilige insert-statement.

flo.

mellesoft
Posts: 6
Joined: 2003-09-12 10:46

hmm..

Post by mellesoft » 2004-01-07 22:08

Danke für die Antwort. eider werde ich daraus nicht schlau. Ich habe die Suche zwar ausführlich genutzt, kann aber dazu nichts finden. Ich wäre für weiter reichende Hilfe dankbar.

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by oxygen » 2004-01-07 22:13

es reicht mysql_fix_privilege_tables auszuführen...

mellesoft
Posts: 6
Joined: 2003-09-12 10:46

Nee..

Post by mellesoft » 2004-01-07 22:24

Leider nich "øxygen". Aber ich habe die Lösung schon gefunden. mysql_fix_privilege_tables ordnet zwar die Rechte bzw fixt diese, aber bei mir (wie auch bei anderen) wurden die Rechte nicht sauber verteilt. Meist konnte dann ein User alle DBs sehen und einiges mehr.

Mein Fehler ist damit nicht zu vergleichen. Confixx legt eine DB an, aber gibt diese nicht an den User weiter. Aber hier die Lösung die ich gefunden habe. Habe es getestet und kann definitiv sagen es funktioniert sauber. Der Fehler mit confixx und MySQL4 ist übrigens weitreichend bekannt.

Hier die Lösung:

MySQL4-Unterstützung für Confixx 2.
confixx/html/user/db_mysql_anlegen.php ersetzen durch: (bitte vorher sichern!!!):
<?php
####### Confixx(R) 2.0 Professional
### Copyright Yippi-Yeah! E-Business GmbH 2001-2003
####### http://www.confixx.de - info@yippi-yeah.com
include("auth.php");

db_connect($db_host, $db_user, $db_pass);

$id = db_query("select maxmysql, anbieter from kunden where kunde = '$PHP_AUTH_USER'");
$werte = db_fetch_array($id);
$maxmysql = $werte["maxmysql"];
$anbieter = $werte["anbieter"];

$id = db_query("select count(datenbank) as mysql from mysql_datenbanken where kunde =
'$PHP_AUTH_USER'");
$werte = db_fetch_array($id);
$mysql = $werte["mysql"];

if (($mysql >= $maxmysql) && ($maxmysql != -1))
{
$fehlertext = ltext("dbmyan_error1");
db_close();
include("db_mysql.php");
exit();
}

$id = db_query("select datenbank from mysql_datenbanken where kunde = '$PHP_AUTH_USER'");
while ($daten = db_fetch_array($id))
{
$dbstring .= "[".$daten["datenbank"]."]";
}

$i = $mysql + 5;
while ($i > 0)
{
$newtmpmysql = $i;
if (! ereg("[".$newtmpmysql."]", $dbstring))
{
$newmysql = $newtmpmysql;
}
$i--;
}

$id = db_query("select * from mysql_datenbanken where datenbank = $newmysql and kunde =
'$PHP_AUTH_USER'");
if (db_num_rows($id) != 0)
{
$fehlertext = ltext("dbmyan_error2");
db_close();
include("db_mysql.php");
exit();
}

$dblang = "usr_".$PHP_AUTH_USER."_".$newmysql;
db_query("INSERT INTO mysql_datenbanken (kunde, datenbank, anbieter, dbname) VALUES ('$PHP_AUTH_USER',
'$newmysql', '$anbieter', '$dblang')");
db_close();

//if (!isset($mysql_host))
$mysql_host = "localhost";
if ($mysql > 0)
{
mysql_connect($mysql_user_host, $mysql_user_user, $mysql_user_pass);
mysql_select_db("mysql");
// $dblang2 = str_replace("_", "\_", $dblang);
$dblang2 = $dblang;
// mysql_query("INSERT INTO db VALUES ('$mysql_host', '$dblang2', '$PHP_AUTH_USER','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N','N', 'Y')");
mysql_query("INSERT INTO db VALUES ('$mysql_host', '$dblang2', '$PHP_AUTH_USER',
'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'N', 'N',
'N', 'Y', 'N', 'N')");
mysql_query("CREATE DATABASE $dblang");
mysql_query("FLUSH PRIVILEGES");

$fehlertitel = ltext("dbmyan_errortitle");
$fehlertext = ltext("dbmyan_error3", array($dblang, $PHP_AUTH_USER, $mysql_user_host));
mysql_close();
include("db_mysql.php");
exit();
} else
{
$newpw = mkpasswd(8);
mysql_connect($mysql_user_host, $mysql_user_user, $mysql_user_pass);
mysql_select_db("mysql");
// mysql_query("INSERT INTO user VALUES ('$mysql_host', '$PHP_AUTH_USER',Password('$newpw'), 'N', 'N', 'N', 'N', 'N', 'N','N', 'N', 'N', 'N', 'N', 'N', 'N','N')");
mysql_query("INSERT INTO user VALUES ('$mysql_host', '$PHP_AUTH_USER',
Password('$newpw'), 'N', 'N', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
'N',
'N', 'N', 'N', 'N', 'N', 'N', '', '',
'', '', '', '', '')");
// $dblang2 = str_replace("_", "_", $dblang);
$dblang2 = $dblang;
// mysql_query("INSERT INTO db VALUES ('$mysql_host', '$dblang2', '$PHP_AUTH_USER','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N','N', 'Y')");
mysql_query("INSERT INTO db VALUES ('$mysql_host', '$dblang2', '$PHP_AUTH_USER',
'Y', 'Y', 'Y', 'Y', 'N', 'N', 'Y', 'N',
'N', 'Y', 'N', 'N')");
mysql_query("CREATE DATABASE $dblang");
mysql_query("FLUSH PRIVILEGES");

$fehlertitel = ltext("dbmyan_errortitle");
$fehlertext = ltext("dbmyan_error4", array($dblang, $PHP_AUTH_USER, $mysql_user_host, $newpw));
mysql_close();
include("db_mysql.php");
exit();
}
?>

Dann sollte es gehen!

Für alle die nicht immer localhost als Host haben möchten, einfach bei der Zeile
//if (!isset($mysql_host))
$mysql_host = "localhost";

as-n
Posts: 196
Joined: 2002-12-19 17:42

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by as-n » 2004-02-23 16:16

Also mein Confixx legt auch damit keine MySQl user an :-(

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by oxygen » 2004-02-24 13:10

Also ich setzte auf einem halben dutzend Server MySQL4 mit Confixx ein... Und es funktioniert ohne solche Workarounds.

schl
Posts: 343
Joined: 2003-02-05 11:26
Location: München/Unterschleißheim

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by schl » 2004-02-24 13:24

ich glaube hier ist mal wieder der link zum allseits geschätzten howto von

http://www.netsecond.net/howto

zu erwähnen

as-n
Posts: 196
Joined: 2002-12-19 17:42

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by as-n » 2004-02-26 08:19

Ich habe jetzt alles mögliche probiert, aber confixx legt mir zwar einen mysql User an, gibt ihm aber überhaupt keine Berechtigungen.
Ich habe beide Skripte probiert, aber es geht nicht.
Habe MySQL 4.0.18 drauf.

Ciao
André

odysseus
Posts: 115
Joined: 2003-02-07 10:21

Re: Seit Update auf MySQL 4 werden keine User bzw DBs angelegt.

Post by odysseus » 2004-02-26 09:34

Ich hab's auch nicht geschafft.
Man möchte meinen, dass eine 100-Euro-Software wie Confixx das schafft, aber Pustekuchen.
Ich habe leider keine Lösung anzubieten. Wenn das von mellsoft gepostete Skript nicht geht, geht vermutlich gar nichts.

mellesoft
Posts: 6
Joined: 2003-09-12 10:46

hmm

Post by mellesoft » 2004-02-26 11:57

Moment, wichtig ist im Anschluss sich als "root" im phpmyadmin an zu melden und die Rechte richtig für User und DBs zu verteilen. Dies wurde durch das Update bei mir verstellt. HAbe diese korrigiert und erst dann hat alles wieder gefunzt. Vorher konnte kein User eine DB anlegen oder mit phpmyadmin Abfragen starten..