Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Alle Remote-Verbindungen zulassen, MySQL

Wie von Ryan oben erwähnt, ist der Befehl, den Sie benötigen,

GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Beachten Sie jedoch, dass die Dokumentation angibt, dass ein anderes Benutzerkonto von localhost erforderlich ist, damit dies funktioniert muss für denselben Benutzer erstellt werden; andernfalls das anonyme Konto, das automatisch von mysql_install_db erstellt wird hat Vorrang, da es eine spezifischere Hostspalte hat.

Mit anderen Worten; in der Reihenfolge für Benutzer user sich von jedem Server aus verbinden zu können; 2 Konten müssen wie folgt erstellt werden:

GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Lesen Sie die vollständige Dokumentation hier

Und hier ist das relevante Stück als Referenz:

Nachdem Sie sich als Root mit dem Server verbunden haben, können Sie neue Konten hinzufügen. Die folgenden Anweisungen verwenden GRANT, um vier neue Konten einzurichten:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

Die durch diese Anweisungen erstellten Konten haben die folgenden Eigenschaften:

Zwei der Konten haben einen Benutzernamen von monty und ein Passwort vonsome_pass. Beide Konten sind Superuser-Konten mit vollen Rechten, um alles zu tun. Das Konto „monty“@„localhost“ kann nur verwendet werden, wenn eine Verbindung vom lokalen Host hergestellt wird. Das 'monty'@'%'-Konto verwendet den '%'-Platzhalter für den Host-Teil, sodass es verwendet werden kann, um sich von jedem beliebigen Host aus zu verbinden.

Es ist notwendig, beide Konten für monty zu haben, um sich von überall als monty verbinden zu können . Ohne das localhost-Konto würde das anonyme Benutzerkonto für localhost, das von mysql_install_db erstellt wird, Vorrang haben, wenn monty eine Verbindung vom lokalen Host herstellt. Infolgedessen würde monty als anonymer Benutzer behandelt. Der Grund dafür ist, dass das anonyme Benutzerkonto einen spezifischeren Host-Spaltenwert hat als das 'monty'@'%'-Konto und daher früher in der Sortierreihenfolge der Benutzertabelle steht. (Das Sortieren von Benutzertabellen wird in Abschnitt 6.2.4, „Zugriffskontrolle, Stufe 1:Verbindungsüberprüfung“ besprochen.)