KDEs Akonadi setzt das MySQL-Root-Passwort auf einen nicht leeren Wert, und ich kann es nicht finden

784
Jason

Ich habe kürzlich eine openSUSE 12.2 vm eingerichtet und KDE als Desktop ausgewählt. KDE (4.3) wird mit einer Anwendung namens 'akonadi' geliefert, die mysql verwendet. Das Ergebnis ist, dass mysql mit einem nicht leeren root-Passwort vorkonfiguriert zu sein scheint. Der Grund für das Einrichten einer openSUSE-VM ist, dass ich ein Installationsskript für einige Software geschrieben habe und dass es auf openSUSE funktionieren soll. Auf fedora / rh kann ich davon ausgehen, dass mysql mit einem leeren root-Passwort installiert wird, und dann den Benutzer mysql_secure_installation ausführen lässt. Bei debian / ubuntu muss der Benutzer bei debconf während der Installation des mysql-Servers das mysql-root-Passwort eingeben. Aber ich habe wahrscheinlich schon immer gnome gewählt, also würde dies vielleicht nicht funktionieren, wenn ich kde wähle.

Wie auch immer, meine Frage läuft darauf hinaus: Wirklich? Setzt kde beim Konfigurieren von mysql für akonadi wirklich ein nicht leeres root-Passwort? und wirklich? Ist es wirklich schwieriger als zu googeln, um herauszufinden, worauf es ankommt? Und zum Schluss (Kopf aufgehängt) kann mir jemand sagen, wie ich es herausfinden kann?

Vielen Dank!

Jason

3

1 Antwort auf die Frage

0
Tullo_x86

Sie können MySQL / MariaDB zwingen, sein root-Passwort festzulegen, indem Sie den Prozess als root (ohne Netzwerkverbindung) starten und sich kennwortlos anmelden. Anschließend führen Sie ein aus ALTER USER, um das root-Passwort zu ändern. Das meiste davon lese ich hier . Das Verfahren ist in MariaDB etwas anders, sollte aber syntaktisch gleichwertig sein.

Ich musste dies nur in der MySQL 5.7.18 Community (unter Fedora 24) tun, daher ist es bekannt, dass es auf mindestens einem System funktioniert.

  1. Stoppen Sie alle mysqldInstanzen, indem Sie sie entweder senden SIGTERM(z. B. durch htop) oder von Ihrem Service Manager herunterfahren ( sudo systemctl stop mysqld.service).
  2. Starten Sie MySQL als System- Root-Benutzer und legen Sie es in den Hintergrund mit:

    $ sudo mysqld --skip-grant-tables --skip-networking --user=root & 
  3. Jetzt, da MySQL läuft (und furchtbar verwundbar, daher das --skip-networkingArgument), loggen Sie sich ein:

    $ sudo mysql -u root 
  4. Laden Sie die Benutzertabelle von MySQL, damit wir sie bearbeiten können:

    mysql> FLUSH PRIVILEGES; 
  5. Legen Sie ein neues Passwort für den Root-Benutzer von MySQL fest. Stellen Sie sicher, dass Sie den lustigen Charakteren richtig entkommen.

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'correct \'horse\' battery staple'; mysql> exit; 
  6. Senden Sie MySQL eine weitere SIGTERM:

    $ sudo kill `cat /var/run/mysqld/mysqld.pid` 
  7. Starten Sie MySQL wieder normal:

    $ sudo systemctl start mysqld.service 
  8. Stellen Sie sicher, dass Sie sich jetzt mit dem Kennwort des MySQL-Root-Benutzers anmelden können:

    $ mysql -u root -p 

Sie werden aufgefordert, das von Ihnen eingegebene Passwort einzugeben und voilà!