it-swarm.com.de

Erlaube dem Linux-Root-Benutzer MySQL-Root-Zugriff ohne Passwort

Wenn ich auf cPanel als root angemeldet bin und "mysql" ohne Hostnamen und Passwort eingebe, habe 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 auf die gleiche Weise wie auf cPanel eine kennwortlose Anmeldung beim MySQL-Root-Benutzer erhält.

Ist das möglich ?

31
user1066991

Der einfachste Weg, dies zu tun, besteht darin, einen Client-Abschnitt der Datei ~/.my.cnf zu verwenden und dort die Anmeldeinformationen hinzuzufügen.

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

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

55
user9517

Wenn Sie für MySQL 5.7+ ein leeres Kennwort für die Ersteinrichtung festlegen, verwendet MySQL automatisch auth_socket als Strategie. Ein Versuch, das Kennwort ohne Änderung der Strategie zu aktualisieren, führt zu keinem Ergebnis. Sie können sich jederzeit ohne Kennwort anmelden, wenn Ihr Benutzer root ist.

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/

25
chaintng

Ab MySQL 5.6.6 können Sie mit 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 das Passwort ein, wenn Sie dazu aufgefordert werden.

Hinweis: Wenn Ihr Passwort '#' und möglicherweise andere Zeichen enthält, verwenden Sie bei der Eingabe des Passworts einfache Anführungszeichen.

7
Brian Deterling

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

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

Sie können eine Datenbank mit importieren

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

oder stellen Sie eine Verbindung zu Ihrer Datenbank her und geben Sie MySQL-Befehle aus

# 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;
...
0
jris198944