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

MySQL връзката не работи

Ето бърз списък за проверка за активиране на отдалечени връзки за MySQL, но първо прочетете (6). Ако съм пропуснал нещо, не се колебайте да редактирате.

1) Вашият отдалечен потребител се свързва чрез акаунт, който е създаден с подходящ user,host записи (вижте изхода от изберете потребител, хост от mysql.user подредете по 1,2 ). Ако не, вижте СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ и/или GRANT команди. Разгледайте изхода от ПОКАЖЕТЕ ГРАНТОВЕ за потребителя.

2) Направихте привилегии за flush; (Някои казват, че е ненужно, други казват, че е).

3a) Намерете вашия конфигурационен файл на mysql, посочен в 3b) по-долу, като прегледате информацията в Този документ (или за Windows, вероятно надолу в C:\ProgramData\MySQL\MySQL Server 5.NNN път). Тя варира според дистрибуцията за Linux.

3b) Вие променихте и запазихте my.ini (Windows) или my.cnf (Linux) и промени bind-address далеч от 127.0.0.1 или localhost , в полза на 0.0.0.0 . И сте създали извадих следния ред:#skip-networking . Ще изглежда подобно на това:

[mysqld]
bind-address=0.0.0.0
#skip-networking

4) Рестартирайте демона mysql. Как се прави това варира в зависимост от дистрибуцията.

5) Проблеми със защитната стена. Уверете се, че портът, като по подразбиране е 3306 , е отворен за външния свят (който всъщност може да е просто вашия интранет). Това включва всякакви други слоеве защитни стени, като AWS EC2 Security Groups или подобни, ако има такива.

6) Разберете, че има риск за сигурността, свързан с това. Освен ако не знаете как да излагате вашия mysql сървър на отдалечени връзки, не правете това.

7) Моля, правете чести оценки на сигурността с select изявление, изброено в 1. по-горе, включително преглед на ПОКАЖЕТЕ ГРАНТОВЕ за тези потребители. Не предоставяйте излишно на потребителите със заместващи символи. По-скоро дайте на потребителите минималните привилегии, за да свършат работата си.

8) Често проверявайте неуспешните опити за свързване чрез Общия регистър и Регистратора на грешките, както е представено накратко по-долу.

За входящи можете да разгледате общия регистър на заявките.

select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to

Така че всички заявки могат да бъдат влезли в Общ журнал на заявки ако настройката е включена. Проверете регистрационния файл за "свързване", но особено за Достъпът е отказан за потребител да видите неуспешни опити. Правете това редовно (не на всеки няколко години). Правя го поне два пъти на ден. Имайте предвид, че очевидно можете да автоматизирате отчитането чрез външна програма. Външният свят ще визва вашият сървър да влезе, както е на изображението по-долу. Това е реалност; подгответе се за това.

Вижте страницата с ръководството за Регистъра на грешките също, отбелязвайки нивата на предупреждение и настройките за многословност въз основа на вашата версия.

Бих препоръчал човек да създаде резервно копие по дата (наречено като такова) и да изтрие регистрационните файлове след архивиране, за да започне наново след архивирането. Регистрационните файлове могат да нараснат бързо по размер, особено Общият дневник. Не забравяйте дали имате включена или изключена настройка за регистриране.

Можете да използвате двата регистъра, за да определите дали опитът ви за свързване е минал през защитната стена по време на стъпките тук.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да поправя сериализиран низ, който е повреден от неправилна дължина на броя на байтовете?

  2. Как да попитам javascript да изчака mysql да присвои стойност на php променлива?

  3. Docker MySQL - не може да се свърже от приложението Spring Boot към базата данни на MySQL

  4. Активирайте Entity Framework 6 за MySql (C#) в WinForms на Microsoft Visual Studio 2013

  5. Динамично задайте псевдоним на всички имена на полета в msyql заявката