порт 3306 закрыт на моем сайте, как его открыть?

У меня есть настольное приложение vb.net... и мне нужно вставить некоторые данные в базу данных на моем веб-сайте. при попытке добавить данные я получаю эту ошибку: «Невозможно подключиться ни к одному из указанных хостов MySQL»

когда я пробую общий IP-адрес с другого веб-сайта, он работает. но это не для моего сайта..

Я проверил это на https://www.yougetsignal.com/tools/open-ports/ , и это дает мне понять, что порт 3306 закрыт на «Моем IP-адресе».

это моя строка подключения выглядит так:

Сервер = IP-адрес моего веб-сайта; Порт =3306; База данных = имя базы данных;Uid= имя пользователя;Pwd= пароль;

можешь мне помочь с этим?.. спасибо..

2 ответа

Как уже упоминал @pmdba, открывать вашу базу данных в Интернете — очень плохая идея.

Поскольку вы не упомянули, какой дистрибутив GNU/Linux вы используете и используете ли вы MySQL или MariaDB, я здесь обобщаю:

  1. Настройте свой сервер MySQL/MariaDB для прослушивания вашего IP-адреса, установив следующий параметр в my.cnf: привязка-адрес =IP_адрес или привязка-адрес =0.0.0.0 для всех IP-интерфейсов на вашем сервере.
  2. Перезапустите сервер базы данных
  3. Убедитесь, что ваш брандмауэр разрешает подключения к TCP/3306. Команда, которая будет работать:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

Проверьте документацию вашего дистрибутива, чтобы узнать, как правильно добавить правило для TCP/3306 в брандмауэр. 4. Убедитесь, что пользователю базы данных разрешено удаленное подключение. Общая команда, которая будет работать, такова: предоставить все привилегии в базе данных.* 'username'@'%', идентифицируемому 'паролем' для всех IP-адресов, или предоставить все привилегии в базе данных.* 'username'@'DesktopIP', определенному ' пароль» для включения доступа только для IP-адреса вашего настольного приложения.

/etc/mysql/mysql.conf.d/mysqld.cnf должен иметь закомментированный адрес привязки локального хоста, поэтому:

      #bind-address           = 127.0.0.1

Создайте и предоставьте разрешения для подключения пользователя root с компьютера 192.168.0.2 , например:

      mysql -u root -p
Enter password: <enter password>
mysql>CREATE USER 'root'@'192.168.0.2' IDENTIFIED BY 'root';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.2';
mysql>FLUSH PRIVILEGES;
mysql>exit
Другие вопросы по тегам