PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suse 8.0 MySQL Frage



Gengar
21.09.02, 10:51
Hi Leute,

ich hab mir jetzt auf meinen Rechner Suse 8.0 installiert, Apache, PHP und MySQL zu installieren war wirklich einfach, jetzt läuft auch alles. Doch nun hab ich eine Frage:
Wie finde ich die Daten von meinem MySQL Server raus?
Ich brauch ja die IP, das Passwort (was ist das für ein Standardpasswort? MySQL hat mich nicht nach einen Passwort gefragt...) usw.
Bin das so von den ganzen Webhostern gewohnt, wie zb Puretec etc. da kriegt man ja die Daten zu geschickt.

Danke für eure Hilfe!

Edit:
Er sagt ja, ich soll ein neues Passwort anlegen:
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
/usr/bin/mysqladmin -u root -p password 'new-password'
/usr/bin/mysqladmin -u root -h Gekko -p password 'new-password'
See the manual for more instructions.

>/usr/bin/mysqladmin -u root -p password 'new-password'
Wenn ich das eingebe, sagt er dann "Enter Password:"
Geb ich mein 'new-password' ein, sagt er:
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'

Da bin ich selber überfragt...:(

Zampano
23.09.02, 19:57
Ein eher zaghafter Versuch einer Antwort (hab nämlich gestern selbst zum ersten Mal mysql installiert):

Frisch installiert brauche ich überhaupt kein Passwort um mich einzuloggen. Wenn ich aber beim Versuch mich einzuloggen die Option "-p" mit eingebe (wie Du es auch gemacht hast), dann werde ich nach einem Passwort gefragt (wie Du auch) und da ich dann keins angeben kann, da ja noch gar keins existiert bekomme ich die gleiche Fehlermeldung wie Du - also lass das -p einfach weg:
/usr/bin/mysqladmin -u root password 'dein-neues-Passwort'
dann fragt er Dich nämlich gar nicht nach nem Passwort sondern ändert ohne weitere Nachfragen das Passwort für den Benutzer root zu dem Sprüchlein das Du zwischen die ' geschrieben hast!.

Dann zum Host: Wenn Du an dem Rechner sitzt auf dem der Mysql-server installiert ist braucht Du gar keinen Host angeben! Lass also auch die Option "-h" einfach weg! Hast Du ein lokales Netzwerk müsstest Du selbst wissen welche IP/welchen Namen der Rechner mit dem Server in deinem Netz hat.

Zum Benutzernamen: Ich kann mich momentan unter eigentlich jedem erdenklichen Namen einloggen - der Benutzer den ich dabei eingebe muss noch nicht mal auf meinem System existieren! :confused: Wenn ich dabei die Option -p nicht mit angebe (s.o.) werde ich auch weiterhin nicht nach einem Passwort gefragt, nur bei -u root bekomme ich ein "access denied" - root-Passwort ich ja schon gesetzt (s.o.). Um das zu ändern müsste root für den Benutzer ein Passwort festlegen und alle die kein Passwort angeben auch ohne dieses "-p" ausschließen - frag mich nicht wie das alles geht, das weiß ich selbst noch nicht :o - käm mir sehr gelegen wenn da jemand anderes was zu sagen kann, würde die Suche in der Dokumentation wahrscheinlich wesentlich verkürzen :D , in diesem Sinne (und in der Hoffnung Dich mit dem teilweise wohl etwas unverständlichen Gewäsch nicht eher verwirrt zu haben):

zampano

Gengar
23.09.02, 20:18
Jo, super!
Hab das unbewusst nun auch geschafft, ich probier das mal aus mit mysql, hab mich da gar nicht näher reingewagt nach dem ersten Schock :D
Danke!

Harry
23.09.02, 20:36
Hallo,

mal ein bisserl was über die Hintergründe der Userverwaltung mit MySQL:

- MySQL hat eine eigene Userverwaltung, d.h. dort können Benutzer existieren, die keinen referenzierenden System-Account haben

- Der Administrator einer MySQL-Datenbank hat innerhalb der Datenbank den Nutzernamen "root" (das ist nicht der System-root)

- Nach der erstmaligen Installation von MySQL hat der root kein gesetztes Paßwort; daher kommt auch beim Starten die Aufforderung, zunächst einmal für den root ein Paßwort festzulegen (die Aufforderung zur Eingabe des Paßwortes bezog sich im übrigen auf das aktuell gesetzte Paßwort, nicht auf das zukünftig gewünschte ... hier hätte es ein Tastendruck auf Enter schon erledigt ;))

- Neue Benutzer kann man in der Datenbank mittels "GRANT <Berechtigung> on <DB.Tabellen> to <User@Host> identified by 'Password'" anlegen ... das kann zunächst natürlich nur der Benutzer root, nachdem er sich mittels "mysql -u root -p mysql" an das MySQL-System und dort in die Datenbank "mysql" angemeldet hat (innerhalb dieser Datenbank werden alle Privilegien verwaltet)
-> Beispiel

"GRANT ALL PRIVILEGES on test.* to fred@localhost identified by 'fredpasswort'"
Dieses Kommando legt einen neues Benutzer mit dem Namen "fred" an und gibt diesem Vollzugriff auf alle Tabellen der Datenbank "test", wenn sich fred von localhost mit dem bekannten Paßwort angemeldet hat.

- Tja - und warum kann sich nun trotzdem jeder Benutzer ohne Paßwort an das MySQL-System anmelden?
Das geht genau solange, bis der User versucht, sich auf eine bestehende Datenbank (mysql, test, etc.) aufzuschalten; dann fehlen ihm die Rechte, weil er nicht im Privilegiensystem auftaucht und er kann doch nicht zugreifen.

Also: "mysql -u dummy" geht, auch wenn es den User "dummy" nicht gibt. Aber hier haben wir den User auch noch nicht auf eine existierende Datenbank aufgeschaltet. Er befindet sich lediglich im interaktiven Kommandomodus und kann dort eigentlich nichts machen.

Jedoch: "mysql -u fred -p test" geht ebenfalls, nachdem fred nun noch das bekannte Paßwort eingegeben hat. Im Gegensatz zum oberen Beispiel befindet sich fred nach dem Login direkt in der Datenbank "test" und kann dort jetzt beliebige Aktionen durchführen.

Harry

Zampano
23.09.02, 20:57
year yoar!

Ich muss sagen der Thread und Harry kommen mir gerade recht! :D
Das wär nämlich wohl das nächste was ich in dem verdammt umfangreichen Handbuch zu mysql zu finden versucht hätte!

Harry
23.09.02, 21:01
Jo das ist schön, wenn man sich gerade die Finger wundgetippt hat und jemand kann davon direkt profitieren - das ist das Feedback, von dem wir hier alle leben :D
Viel Spaß :)

Harry

HangLoose
23.09.02, 21:10
jo, da schließ ich mich doch glatt mal an, schlag mich auch grade mit mysql rum

@Harry

super erklärt, thx. :)


Gruß HangLoose

Gengar
23.09.02, 21:12
Jo, suuuuuuuuuper freundlich der Harry!
Und so leicht verstehend ;)
Danke danke danke danke :D

X_FISH
27.09.02, 09:36
Na, da hänge ich mich doch gleich mal an den Thread an.

Die Erklärung von Harry hat mir das bestätigt, was ich bisher vermutet habe. Nur: Ich habe noch immer ein Problem:

Ich habe ein kleines PHP-Testscript geschrieben. Gebe ich

$link = mysql_connect('localhost','root','');

an, kann ich nicht die Verbindung herstellen, über den FQDN oder den Alias in der /etc/hosts schon.

Ich gehe von einer MySQL-Einstellung bzw. einem Eintrag in der mysql-Verwaltungs-DB aus.

Hat mir wer 'nen heißen Tipp?

TIA X_FISH

apofis11
28.09.02, 18:23
schon mal jeman phpmyadmin installiert prima sache für alle die leiber klicken