Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да стартирате mysqladmin flush-hosts на Amazon RDS

В някои случаи, докато изпълнявате MySQL на Amazon RDS (или другаде), може да е необходимо да FLUSH всички host записи от MySQL. Обикновено това се изисква, когато грешката "Host 'host_name' is blocked" възниква, което ще предотврати допълнителни връзки от този конкретен host_name .

host_name blocked грешка възниква, когато броят на max_connect_errors посочено в конфигурацията на MySQL е надвишено, което означава, че конкретен хост се е опитал да се свърже твърде много пъти неуспешно. Това е мярка за сигурност, въведена от MySQL, за да се предотвратят неоправдани атаки от хостове/потребители, които нямат подходящи идентификационни данни, но понякога това може да се случи по погрешка и може да се наложи да бъде разрешено чрез прочистване на хостовете.

Какво правят Flushing Hosts?

С потребител на MySQL с подходящи привилегии изпълнява FLUSH изявление, MySQL може да изчисти flush таблици, ключалки и вътрешни кеш системи в зависимост от предадените в options . В случай на FLUSH HOSTS; , MySQL ще изпразни кеша на хоста, което на практика означава, че записът на MySQL за това кои хостове са свързани в момента или наскоро са свързани, се нулира, което позволява допълнителни връзки от споменатите хостове.

Директно изпълнение на FLUSH HOST

Въпреки че може да се окаже, че сте напълно възпрепятствани да се свържете с MySQL, в някои случаи е възможно системата да „запази“ слот за връзка, който е достъпен само за основния или root акаунт.

За Amazon RDS , това потребителско име обикновено се намира във вашата конзола за управление по подразбиране или като „главен“. Опитайте се да се свържете с вашия MySQL сървър с това основно потребителско име.

Ако можете да се свържете, изтриването на вашите хостове е толкова просто, колкото стартирането на FLUSH HOSTS; Изявление на MySQL:

FLUSH HOSTS;

Вече трябва да сте изчистили host_name blocked грешка и да можете да се свържете с вашия стандартен MySQL акаунт.

Прочистване на хостове отдалечено с помощта на MySQLAdmin

В случай, че не можете да се свържете с MySQL като главен акаунт и все още получавате blocked грешки, следващата опция е да се свържете отдалечено със сървъра и да изпълните flush команда с помощта на mysqladmin инструмент.

За да направите това, ще трябва да сте свързани с различен EC2 екземпляр или сървър, който има достъп до RDS сървъра, предизвикващ грешката.

След като се свържете, изпълнете следната команда с подходящите опции, заместени между <> :

$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts

Ако е успешен, flush-hosts командата ще бъде изпълнена според очакванията и вече ще можете да се свържете с MySQL както обикновено.

Рестартиране на RDS екземпляр

Последната опция, ако всичко друго не успее, е просто да влезете в контролния панел за управление на RDS и ръчно да рестартирате екземпляра на RDS, който дава грешката. Това ефективно ще нулира hosts cache за вас, въпреки че може да не е идеален при производствени обстоятелства.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване на данни в MySQL база данни

  2. JSON_SET() срещу JSON_INSERT() срещу JSON_REPLACE() в MySQL:Каква е разликата?

  3. PHP PDO:набор от знаци, имена на набори?

  4. Как да извлека потребителското си име и парола за MySQL?

  5. Как да експортирате данни от SQL Server 2005 в MySQL