Erlauben Sie dem Linux-Root-Benutzer den MySQL-Root-Zugriff ohne Kennwort

Erlauben Sie dem Linux-Root-Benutzer den MySQL-Root-Zugriff ohne Kennwort

Wenn ich im cPanel als Root angemeldet bin und „mysql“ ohne Hostnamen und Passwort eingebe, erhalte ich direkten Zugriff auf den MySQL-Root-Benutzer.

Ich möchte dies für einen meiner Nicht-cPanel-Server tun, bei dem der Linux-Root-Benutzer eine kennwortlose Anmeldung beim MySQL-Root-Benutzer erhält, und zwar auf die gleiche Weise wie bei cPanel.

Ist das möglich ?

Antwort1

Am einfachsten geht das, indem Sie einen Clientabschnitt der Datei ~/.my.cnf verwenden und die Anmeldeinformationen dort hinzufügen.

[client]
user=root
password=somepassword
...

Es ist eine gute Idee, auch diese Datei nur für Root lesbar zu machen.

Antwort2

Wenn Sie bei MySQL 5.7+ bei der Ersteinrichtung ein leeres Passwort festlegen, wird MySQL automatisch auth_socketals Strategie verwendet. Ein Versuch, das Passwort zu aktualisieren, ohne die Strategie zu ändern, bleibt erfolglos. Sie können sich immer ohne Passwort anmelden, wenn Ihr Benutzer ist root.

Lösung Führen Sie den folgenden Befehl aus, um die Authentifizierungsstrategie zu ändern und das Kennwort festzulegen

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''

Referenz:https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

Antwort3

Ab MySQL 5.6.6 können Sie mit dem mysql_config_editor eine verschlüsselte Datei erstellen, die Sie automatisch anmeldet:

mysql_config_editor set --login-path=client --host=localhost --user=root --password

Geben Sie dann bei der entsprechenden Aufforderung das Passwort ein.

Hinweis: Wenn Ihr Kennwort „#“ und möglicherweise andere Zeichen enthält, verwenden Sie bei der Eingabe des Kennworts einfache Anführungszeichen.

Antwort4

Erstellen Sie eine Datei, die nur das MySQL-Root-Passwort enthält und die nur Root lesen kann.

# ls -l /root/.mysqlpw 
-rw------- 1 root root 7 2013-08-19 13:24 /root/.mysqlpw

Sie können eine Datenbank importieren mit

# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase < databasedump.sql

oder verbinden Sie sich mit Ihrer Datenbank und geben Sie MySQL-Befehle ein

# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20460
Server version: 5.1.63-0ubuntu0.10.04.1 (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| yourdatabase       |
+--------------------+
3 rows in set (0.00 sec)

mysql> show tables;
...

verwandte Informationen