sql >> Databasteknik >  >> RDS >> Mysql

Värden 'xxx.xx.xxx.xxx' får inte ansluta till denna MySQL-server

Möjligen en säkerhetsåtgärd. Du kan försöka lägga till ett nytt administratörskonto:

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;

Även om det, som Pascal och andra har noterat, inte är en bra idé att ha en användare med denna typ av åtkomst öppen för alla IP-adresser. Om du behöver en administrativ användare, använd root och lämna den på localhost. För alla andra åtgärder ange exakt de privilegier du behöver och begränsa användarens tillgänglighet som Pascal har föreslagit nedan.

Redigera:

Från MySQL FAQ:

Om du inte kan ta reda på varför du får åtkomst nekad, ta bort från användartabellen alla poster som har värdvärden som innehåller jokertecken (poster som innehåller "%" eller "_" tecken). Ett vanligt fel är att infoga en ny post med Host='%' ochUser='some_user', och tror att detta låter dig ange lokalvärd för att ansluta från samma maskin. Anledningen till att detta inte fungerar är att standardprivilegierna inkluderar en ingång med Host='localhost' och User=''. Eftersom den posten har ett värdvärde 'localhost' som är mer specifik än '%', används den istället för den nya posten när du ansluter från localhost! Den korrekta proceduren är att infoga en andra post med Host='localhost' ochUser='some_user', eller att radera posten med Host='localhost' ochUser=''. Efter att ha tagit bort posten, kom ihåg att utfärda ett FLUSH PRIVILEGES-uttalande för att ladda om bidragstabellerna. Se även avsnitt 5.4.4, "AccessControl, Steg 1:ConnectionVerification".



  1. Databasoptimering:Index

  2. Hur uppdaterar jag om det finns, infogar om inte (AKA upsert or merge) i MySQL?

  3. Inaktivera ONLY_FULL_GROUP_BY

  4. Beräkna ålder baserat på födelsedatum