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_socket
als 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;
...