порт 3306 закрыт на моем сайте, как его открыть?
У меня есть настольное приложение vb.net... и мне нужно вставить некоторые данные в базу данных на моем веб-сайте. при попытке добавить данные я получаю эту ошибку: «Невозможно подключиться ни к одному из указанных хостов MySQL»
когда я пробую общий IP-адрес с другого веб-сайта, он работает. но это не для моего сайта..
Я проверил это на https://www.yougetsignal.com/tools/open-ports/ , и это дает мне понять, что порт 3306 закрыт на «Моем IP-адресе».
это моя строка подключения выглядит так:
Сервер = IP-адрес моего веб-сайта; Порт =3306; База данных = имя базы данных;Uid= имя пользователя;Pwd= пароль;
можешь мне помочь с этим?.. спасибо..
2 ответа
Как уже упоминал @pmdba, открывать вашу базу данных в Интернете — очень плохая идея.
Поскольку вы не упомянули, какой дистрибутив GNU/Linux вы используете и используете ли вы MySQL или MariaDB, я здесь обобщаю:
- Настройте свой сервер MySQL/MariaDB для прослушивания вашего IP-адреса, установив следующий параметр в my.cnf: привязка-адрес =IP_адрес или привязка-адрес =0.0.0.0 для всех IP-интерфейсов на вашем сервере.
- Перезапустите сервер базы данных
- Убедитесь, что ваш брандмауэр разрешает подключения к 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