PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "No database selected" error



Stormsam
26.09.02, 18:14
hallo@all user,

Ich wollte bei meinem mysql-server einen neue datenbank und einen neuen benutzer über die konsole erstellen!
Folgendes habe ich eingegeben:


# mysqladmin -u root -p create "datenbank"
Enter password:
#mysql -u root -p
Enter password:

Welcome to the MySQL monitor.......

mysql> insert into user values ('host','benutzer',password('passwort'),
--> 'N','N','N','N','N','N','N','N','N','N','N','N','N ','N');



So dann erhalt ich folgenden fehler:

ERROR 1046: No Database selected

Wieso kommt der fehler?
also 'host', 'benutzer' und 'passwort' hab ich natürlich mit den daten eines bestehenden usern ersetzt.
Warum sagt er dass ich noch keine db ausgewählt habe.
Wo wähle ich diese denn aus?

Ich hoffe ihr könnt mir helfen!

MfG

Stormsam

joschua
26.09.02, 19:54
die tabelle "user" ist eine tabelle der db "mysql"

du musst also zuerst die db auswählen um in eine dazugehörige tabelle zu schreiben.

also:
mysql> use mysql;
danach
mysql> insert into user blah blah...

ps: schon mal was von phpmyadmin gehört??
joschua

EDIT:
Das ganze ('N', 'N', 'N', 'N', 'N', 'N') kannste weglassen da das deafault ist.

Stormsam
27.09.02, 18:47
@joschua,

wenn ich eingebe:




mysql> use mysql;
No connection. Trying to reconnect...
Connection ID: ***
Current database: ***None***

Database changed

mysql> insert into user values ('host','benutzer',password('passwort'),
--> 'N','N','N','N','N','N','N','N','N','N','N','N','N ','N');
ERROR 1064: You have an error in your SQL syntax near ''N','N','N','N','N','N','N','N','N','N','N','N',' N','N')' at line 2

Wenn ich das ohne die " 'N' " 's mache, dann sieht das do aus:

mysql> insert into user........eben jetzt ohne die N's
-->
-->

also er tut dann nichts!
Er fängt nur neue Zeilen an,aber wenn ich das nächste bestimmen will ('db') und da alles auf 'Y' stelle krieg ich wieder ein syntax error!
Wisst ihr woran das liegen könnte?
Hat jemand einen Fehler entdeckt ?
Habt ihr vielleicht eine Vermutung was ich falsch gemacht habe?
Ich hoffe ihr antwortet!

MfG

Stormsam

joschua
27.09.02, 19:00
versuchs mal damit:

INSERT INTO mysql.user SET Host = 'localhost', User = '<username>', Password = PASSWORD('<passwort> '), Select_priv = 'N', Insert_priv = 'N', Update_priv = 'N', Delete_priv = 'N', Create_priv = 'N', Drop_priv = 'N', Reload_priv = 'N', Shutdown_priv = 'N', Process_priv = 'N', File_priv = 'N', Grant_priv = 'N', References_priv = 'N', Index_priv = 'N', Alter_priv = 'N'

oder wie gesagt mit phpmyadmin ;)

joschua

Stormsam
27.09.02, 20:26
@joschua

das mit der konsole funktioniert irgendwie nicht!
Einfacher is das doch sicherlich mit phpMyAdmin!
Kannst du mir vielleicht sagen wie das da genau funktioniert mit der Rechtevergabe?
Ich wäre dir sehr dankbar wenn du mir weiterhin hilfst!

Mfg

Stormsam

joschua
27.09.02, 20:44
am besten saugst du dir die neuste phpmyadmin version
ab version 2 ist ein tool für die usererstellung dabei.

danach erstellst du als root (in phpmyadmin) ne neue db zb: Stormsam

danach musst in der tabelle mysql.db (die tabelle "db" der datenbank mysql ;)) eine neue zeile einfügen.
einfach auf einfügen klicken.

host= localhost
db= Stormsam
user = Stormsam
den rest kannste alles auf Y setzen

nun musst du noch den user anlegen: klicke in der navi auf home (startseite)
danach "neuen benutzer einfügen"
host = Stormsam.de (localhost geht auch aber mit Stormsam.de kann mit dem user nur von Stormsam.de her auf die db zugegriffen werden solange du niemandem sonst die rechte für die selbe db erstellst)
benutzername = Stormsam
passwort = deinpasswort

alle rechte auf N (nicht anklicken ;))

danach WICHTIG!
danach muss mysql neu gestartet werden sonnst wird nix übernommen.
das kannste ebenfalls von der startseite aus machen indehm du auf: MySQL neu starten klickst.


wenn was nicht klar ist, frag nochmal
joschua

Stormsam
27.09.02, 21:11
also,

ich kenne mich mit diesem programm überhaupt nicht aus!
Also du sagst ich soll eine db erstmal erstellen!
Dann fragt er mich noch nach name und Feld und weiteren sachen der erstellten datenbank!
Die muss ich doch nicht ausfüllen?
Dann, wo finde ich auf phpmyadmin denn die datenbank mysql?
Ganz rechts steht "keine Datenbanken"!
Erstmal so viel,

wenn ich das weiß dann komme ich wahrscheinlich weiter!

Mfg

Stormsam

joschua
28.09.02, 02:59
also,
ich kenne mich mit diesem programm überhaupt nicht aus!
Dan würde ich dir raten dir mal bei google ein bischen grundverständniss anzueignen.

Also du sagst ich soll eine db erstmal erstellen!
nei zuerst phpmyadmin installieren

Dann fragt er mich noch nach name und Feld und weiteren sachen der erstellten datenbank!
du scheinst eine Datenbank und tabelle zu verwechseln. bei einer datenbank brauchst du nur den namen anzugeben.
du musst dir eine datenbank wie ein verzeichniss vorstellen. in diesem verzeichniss können keine unterverzeichnisse erstellt werden aber dafür 100te fvon files (tabellen) gespeichert werden. also: datenbank!= tabelle

Dann, wo finde ich auf phpmyadmin denn die datenbank mysql?
Ganz rechts steht "keine Datenbanken"!
ich hoffe mal du hast die db mysql nicht gelöscht. du solltesd deafault mässig 2DB's haben
(test und mysql)
im linken frame ist ein pulldown menue dort sollten die db's auswählbar sein.

übrigens: eine db erstellen kannst du von der startseite aus bei ("Neue Datenbank anlegen [Dokumentation]")
bei dokumentation kann man draufklicken... ist manchmal hilfreich ;)

wie schauts nun aus? haste die db's gefunden??

Stormsam
28.09.02, 14:40
ok joschua,

die datenbanken sind jetzt alle da!
Die Einstellung in der mysq.db und einen User hinzugefügt hab ich.
Mein eigentliches Problem ist es, dass ich an User datenbänke vergebe!
Nur die hatten immer alle admin-rechte.
Wenn ich einen User so erstelle wie du mir gesagt hast, kann er dann nicht mehr auf andere datenbänke zugreifen?
denn die user sollen nur ihre datenbank kontrollieren können.

MfG

Stormsam

joschua
28.09.02, 16:56
ja dafür ist ja die tabelle "db" in dehr steht, welcher user auf welche db's zugriff hat.

das ganze kannst du sicherheitshalber ja mal austetsen indehm du phpmyadmin auf cookie based umstellst (so das sich jeder mit seinem passwort einlogen muss. )

dan kannste dich ja mal mit einem dieser user einlogen und sehen auf welche dbs er zugriff hat.

sie dürfen auf KEINEN FALL zugriff auf die db mysql haben!

joschua

Stormsam
28.09.02, 17:27
@joschua

kannste mir mal sagen wo ich phpmyadmin auf cookie based umstelle?

Mfg

Stormsam

joschua
28.09.02, 18:54
in der config.inc.php musst du den wert:

$cfgServers[$i]['auth_type'] auf "cookie" setzen.

joschua

Stormsam
28.09.02, 19:44
also

ich hab das jetzt so umgestellt aber wenn ich als user mit keinen rechten oder nur rechten für die eigene db mich in der config.inc.php eintrage, sehe ich links alle datenbanken und kann auch auf mysql zugreifen.
ausserdem hab ich noch die rechte mysql neu zu starten etc.
jedoch wenn ich mich als dieser user einlogge steht da nicht, wie früher, user@localhost oder so sondern egal als wer ich mich einlogge steht da MySQL 3.23.41-log auf localhost!
Woran liegt das?
Soll ich eigentlich überall authtype auf cookie setzen oder nur ganz oben wo ich auch mein usernamen etc. eintrage?

PS: Tut mir leid dich ganze zeit zu nerven aber das is sehr wichtig für mich und ich hoffe das wir bald fertig sind!

MfG

Stormsam

joschua
01.10.02, 14:53
hmm, solte eigentlich nicht....
schau dir ma die tabellen user und db an, ev sind dort noch ein paar deafaultmäsige zeilen drinn welche allen usern alles erlauben.

joschua

Stormsam
02.10.02, 18:57
@joschua

dass da jetzt immer name@localhost steht hab ich jetzt zumindest geschafft!
Nur wollt ich irgendwie das password für root über die konsole ändern und jetzt hab ich kein zugriff mehr:
Access denied for user: 'root@localhost' (Using password: NO)

Was hab ich denn jetzt schon wieder gemacht?

MfG

Stormsam

joschua
02.10.02, 19:24
hast du den root gelöscht??

schau in der tabelle user beim user root ob da ein passwort drinn ist... und ob die zeile existiert.

joschua

Stormsam
02.10.02, 19:58
ja, steht drin.
also in der zeile 'user' steht root als default value, in der Zeile 'host' steht localhost als default value und in der zeile password steht eben das passwort als default value!
alles andere ist auf N gestellt.
in der konsole erhalt ich immer noch den fehler:
error 1045: Access denied for user: root@localhost (Using password:no)

Ich weiß nicht, kann da vielleicht irgendwas in der db (mysql) falsch sein oder muss ich ein wert bei user auf y stellen?

Stormsam
02.10.02, 20:45
@joschua

danke!
für's erste scheints zu funktionieren.
ich hoffe die user und db privileges sind jetzt richtig verteilt...
jedenfalls danke für deine hilfe.
ich muss jetzt nur noch ma gucken wie ich die user jetzt erstelle etc....

MfG

Stormsam