# Mysql - Datenbank Password für Root überschreiben

## benjamin200

Ich hatte bis vor kurzem Mysql am laufen und konnte über phpmyadmin darauf zugreifen. Über das WEB Interface habe ich die Usergelöscht und kann nun natürlich nicht mehr auf SQL Zugreifen.

Um wieder Access zu erhalten habe ich mysql mit emerge --unmerge mysql vom system entfern und schließlich noch das /etc/mysql Verzeichnis entfernt. Nach dem ich mysql neu installiert hatte besteht das Problem weiterhin. Die User sind weg. Ich bekomme kein Zugriff auf Mysql.

Als Standard waren dort 4 User definiert. Wie kann ich diese wiederherstellen. Selbst unter root habe ich keinen Zugriff auf MYSQL. Ich kann den Dienst nur starten. HILFEEELast edited by benjamin200 on Sat Nov 20, 2004 4:38 pm; edited 3 times in total

----------

## tex

Hi,

bin mir nicht 100% sicher, aber ich habe in Erinnerung, dass man mit mysql_install_db die mysql Datenbank wieder herstellen kann. Es ist dann wieder ein User root vorhanden, ohne Passwort.

Gruß

Tex

----------

## psyqil

Ich hab wenig Ahnung von MySQL, aber wenn ich mal wieder was verbockt hab, lösch ich immer /var/lib/mysql und fang von vorne an... :Very Happy: 

----------

## NueX

Hach, wie bekannt mir das vorkommt. Hab auch mal über phpmyadmin die user-Datenbank gelöscht. Die sind aber auch leichtsinnig, dass da nicht einmal ein Sicherheitshinweis kommt  :Wink: 

Ich hab jedenfalls kein Möglichkeit gefunden, dass wieder herzustellen. War aber (zum Glück) auch weiter nicht schlimm, ich hab nochmal von vorne angefangen. Aus solchen Fehlern lernt man!

Gruß, NueX

----------

## benjamin200

Leider konnte ich mit mysql_install_db und durch das löschen von  /var/lib/mysql kein positives Ergebnis erziehlen. Trotzdem habe ich es geschaft die User wieder herzustellen.

```

/var/db/pkg/dev-db/mysql-4.0.18/mysql-4.0.18.ebuild config

/etc/init.d/mysql restart

```

Gruß,

Benjamin

----------

## pablo_supertux

Finde die Dateien .MYD .MYI .frm im order mysql. Sie haben die Benutzer gespeichert. Normmalerweise unter /var/mysql

Mit mysql_install_db kannst du die neue Datenbanken erstellen mit benutzer root.

Dann

```

# mysqladmin -u root password [i]dein Passwort[/i]

```

Und fertig, so kannst du dich anmelden

```

# mysql -uroot -p

```

----------

## ian!

Leute, ihr macht komische Sachen.  :Wink: 

Richtig (so steht es auch im Handbuch) ist es so:

1.) Dienst stoppen.

2.) mysqld mit der Option --skip-grant-tables starten

3.) Passwort wie bei Installation setzen (mysqladmin -u root password '<Passwort>')

4.) Privilegien laden: mysqladmin -h <Hostname> flush-privileges

Nun kann man sich an die Datenbank anmelden.

--ian!

----------

## benjamin200

Hallo Leute,

hab mir nun ein nettes Buch zum Thema MySQL benutzt. Dort wird unter anderem auch auf den Fall der Fälle eingegangen - was  ist wenn das root Passwort vergessen wurde?

Trotz der detaillierten Anweisung von "jan" bekomme ich es einfach nicht hin. Hab das Passwort zwar nicht vergessen, möchte jetzt aber mal endlich rausbekommen wie man das PW zurücksetzt. Aussperren möchte ich mich nämlich nicht  :Smile: 

jan! schrieb:

 *Quote:*   

> 
> 
> Richtig (so steht es auch im Handbuch) ist es so:
> 
> 1.) Dienst stoppen.
> ...

 

So habe ich es versucht:

```

bash-2.05b# mysqld --skip-grant-tables

041120 17:28:22 Can't start server: Bind on TCP/IP port: Address already in use

041120 17:28:22 Do you already have another mysqld server running on port: 3306?

041120 17:28:22 Aborting

041120 17:28:22 mysqld: Shutdown Complete

bash-2.05b# mysqld --skip-grant-tables

041120 17:28:30 Can't start server: Bind on TCP/IP port: Address already in use

041120 17:28:30 Do you already have another mysqld server running on port: 3306?

041120 17:28:30 Aborting

041120 17:28:30 mysqld: Shutdown Complete

bash-2.05b# mysqladmin shutdown

mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user: 'root@localhost' (Using password: NO)'

bash-2.05b# mysqladmin shutdown -p

Enter password:

bash-2.05b# mysqld --skip-grant-tables

use mysql;

update user set password = test whee user = root;

exit

exit

exit;

    

```

Wie man am den dreifachen exit versuchen sieht, komme ich nicht mehr aus der Konsole raus um anschließend "mysqladmin reload" auszuführen. Irgenwas mach ich falsch. Kann mir jemand weiterhelfen? Achja, aktuell läuft bei mir mysql in Version

Gruß

Benjamin

----------

## legine

Hmpf,

Im gegensatz zu benjamin200 hab ich alle passwörter samt eingerichteten user vergessen.  :Sad: 

Naja nicht so schlimm.

 *benjamin200 wrote:*   

> 
> 
> bash-2.05b# mysqld --skip-grant-tables
> 
> 041120 17:28:22 Can't start server: Bind on TCP/IP port: Address already in use
> ...

 

Sieht so aus als würde eine Mysql instance laufen?!

probier mal:

```

bash #  /etc/init.d/mysql stop

oder

bash # mysqladmin shutdown

oder ganz brutal

killall mysql (bzw. das was ps sagt :) )

```

nun ja und danach nochmal mit ian!s methode starten.

```

bash # mysql --skip-grant-tables &

```

WICHTIG Wenn man in der selben shell weiterarbeiten möchte das & anhöngen. damit wird der prozess in den hintergrund geladen, wärend man im vordergrund weiterarbeitet  :Smile: 

Ansonsten ne neue shell aufmachen  :Very Happy: 

Dannach müsste der mysql server wieder starten und lässt sich auch bedienen bis auf die tatsache das root die privelegien fehlen passwörter zu ändern  :Shocked: 

eigentlich irgendwie logisch. Aber wenn man jetzt den sql server herunterfährt mit:

```
bash # mysqladmin shutdown
```

und wieder regulär startet z.B,. mit mysql sind die eigenschaften immer noch da...

genauer schmeißt msql folgendes:

Irgendwelche ideen?

P.S.: sorry für die ausführlichkeit  :Very Happy: , aber für alle lieber alle Möglichkeiten die mir einfallen mal hingeschrieben.

----------

## Dr_Pepper

MySQL_Doku:

A.4.1 How to Reset the Root Password

http://dev.mysql.com/doc/mysql/en/Resetting_permissions.html

----------

