sql >> Database teknologi >  >> RDS >> Mysql

Adgang nægtet for 'user'@'localhost'

Jeg tror ikke, dette er et portproblem, forespørgslen når frem til sin destination. Brug af [email protected] vil fungere, når du logger ind via kommandolinjen (mysql -u root -p ), men du ønsker ikke at bruge det til at forbinde med din kode. Husk, at når du etablerer din forbindelse, skal du bruge host=localhost eller host=127.0.0.1 eksplicit. Hvis du bruger IP-adressen (selv på den samme server), vil du få adgang nægtet.

[[email protected] ~]# mysql --host=127.0.0.1 --protocol=TCP -u root -p
Enter password:
mysql>
[[email protected] ~]# mysql --host=192.168.1.10 --protocol=TCP -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'hostname' (using password: YES)

Her er de trin, jeg vil anbefale at tage:

  1. Opret en dedikeret bruger, som du kan bruge til at oprette forbindelse i dine scripts.
  2. Hvis kilden til scriptet er samme server som MySQL.

    CREATE USER '<user>'@'localhost'
    IDENTIFIED BY 'password';
    GRANT ALL
    ON <database>.*
    TO '<user>'@'localhost';
    
  3. Hvis forbindelsen altid etableres fra det samme sted, men en anden placering end MySQL, skal du køre følgende på kommandolinjen.

    CREATE USER '<user>'@'<IP_address>'
    IDENTIFIED BY 'password';
    GRANT ALL
    ON <database>.*
    TO '<user>'@'<IP_address>';
    
  4. Hvis kilden til forbindelsen varierer, skal du køre følgende kommando.

    CREATE USER '<user>'@'<IP_address>'
    IDENTIFIED BY 'password';
    GRANT ALL
    ON <database>.*
    TO '<user>'@'%';
    

Her er et link til dokumentationen hvis du har spørgsmål.




  1. C#:Send en brugerdefineret type til en Oracle-lagret procedure

  2. Hvad er den mest effektive måde at trimme tiden fra datetime?

  3. MySql med JAVA fejl. Den sidste pakke, der blev sendt til serveren, var for 0 millisekunder siden

  4. Unik begrænsning på flere kolonner