PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : komme als root nicht in mysql opensuse 11.0



UranusI
21.01.09, 18:45
Hallo Linuxe,
komme als root nicht in mysql.
habe eigentlich Erfahrung mit 10.0 und mysql. Da gibt es kein mysql password in der Initialphase. Nun dachte ich da ist irgendwie eins irgednwie drinn. Man kann ja das Password zurücksetzen.

service mysql stop Server stoppen

ind die /etc/init.d/mysql folgendes nachtragen
$SAFE_MYSQLD \
.
.
--skip-grant-tables \
--skip-networking \

dann

service mysql start (ohne password)

mysql -u root (also root einklinken ohne password)
mysql> use mysql; (Tabelle auswählen)
mysql> UPDATE user SET Password=PASSWORD("NewPassword") WHERE User="root";
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0 (Password neu setzen)

soo und da habe ich schon

0 rows affected ...rows matched:0 Changed:0

das heisst der hat in die "Luft" gegriffen

Fazit: wie komme ich "normal" als root in die Datenbank?

Danke

derRichard
21.01.09, 19:57
hi!

kann es sein, dass du "root@localhost" oder "root@%" meist?
darum wird das update in die hose gegangen sein.
mysql will ja pro user einen host haben.

hth,
//richard

UranusI
21.01.09, 20:26
mir ist das bekannt dass man normal ein host dazu nennen muss. aber ich bin auf localhost und habe alles neu auch das linux (opensuse 11.0)
selbst bei mysl_secure_installation bockt er ..es kommt Access denied for user 'root'@'localhost' (using password:NO)
was muss ich tun :-(

derRichard
21.01.09, 20:27
ich dachte an das update-kommando...

//richard

UranusI
21.01.09, 20:34
habe nix upgedatet ..alles frisch. normalerweise kan man nach dem start ...sich als root ohne password einloggen aber nicht bei 11.0

UranusI
24.01.09, 13:15
jooo habs gelöst ..
das dumme ist es gibt gar keinen user root ...nach der Installation.
das heisst:

mysql starten mit:

--skip-grant-tables \
--skip-networking \

dann mysql starten


mysql> INSERT INTO mysql.user (Host, User, Password) VALUES ('localhost', 'root', 'ABC');
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> UPDATE mysql.user SET Password=PASSWORD('neuespass') WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql stoppen

--skip-grant-tables \
--skip-networking \

entfernen aus /etc/init.d/mysql

dann dienst starten freuen und darauf anstossen :-)

Svenny
24.01.09, 18:54
trotzdem fehlt meines erachtens nach der host suffix am usernamen.

skip-networking würd ich trotzdem aktiviert lassen.

MiGo
25.01.09, 11:55
trotzdem fehlt meines erachtens nach der host suffix am usernamen.
Der host steht in einem anderen Datenbankfeld - mit "WHERE user='root'" ändert er einfach alle (also root@localhost und root@%).

UranusI
23.02.09, 21:37
Muss hier nochmal posten ..habe nun die Ursache für den ganzen Mist gefunden.

Linux und MySQL sind eben 2 verschiedene Dinge ..:D

Da wird doch nach einer Neuinstallation von openSuse und dem Starten von:

/etc/init.d/mysql start


der initial hostname localhost gezogen ....so und nun kommts

mysql_install_db sets up the GRANT table and tries to add some users. specifically ‘root’at’localhost’ and ‘root’at’<hostname>’. If the hostname of the machine is accidentally set to ‘hostname’ or ‘localhost’, it results in a duplicate entry.


Na toll ..Nach sowas sucht man nun ..

also vorher:

hostname deintollerhost

und danach erst

/etc/init.d/mysql start