MySqlConnection con = new MySqlConnection("Server = 'ip_adress'; Database = 'db'; Uid = 'root'; Pwd = 'test'; SslMode = none");
Привет! Я пытаюсь подключиться к своей базе данных mysql, используя свой ip вместо localhost. Используя localhost, все в порядке, но он не может подключиться, когда я использую ip. Я следил за большинством, если не за всеми ветками по этой теме, но до сих пор не могу это исправить. Я могу подключиться к phpmyadmin с помощью ipadress, я предоставил полные привилегии root, установил хост на%, перенаправил порт 3306 и 80. Я ценю любую помощь. Спасибо
неправильно написано. я добрался до 3306
Я полагаю, вы сбросили привилегии SQL и перезапустили маршрутизатор?
я сделал это .. но я не думаю, что это проблема с пользователями. он просто не может подключиться к ip, если пользователь будет проблемой, я думаю, я получу еще одну ошибку.
это C# что ли? Какую именно ошибку вы получаете?
Ваше приложение действительно не должно входить в систему как root, если вы можете ему помочь, создайте учетную запись специально для него, которая имеет только те привилегии, которые ему действительно требуются для выполнения своей работы. В любом случае, действительно ли mysql настроен для прослушивания внешних подключений на этом IP-адресе (что будет выглядеть, когда вы используете IP-адрес, даже если физически ваш клиент находится на том же компьютере)? Глупый вопрос, но вы проверили правильность IP-адреса? Есть ли на машине какой-либо брандмауэр?
Установите PsPing и с удаленного хоста попробуйте запустить TCP ping с помощью psping 192.0.0.0:3306 -T. Если он говорит, что пакет потерян, это означает, что брандмауэр блокирует этот порт. Вы можете получить PsPing здесь docs.microsoft.com/en-us/sysinternals/downloads/psping (PS: nmap может сделать то же самое, если он у вас установлен)
он слушает 3306, он не возвращает 100% потерю пакетов. Я думаю, что настроил его для внешних подключений, как я уже сказал, я следовал большинству руководств. единственное, что я не сделал, так это раскомментировал bind-adress: 127.0.0.1, потому что его нет. Я остановил брандмауэр, та же ошибка
@ A.Dravid Попробуй отредактировать на bind-address = 0.0.0.0
это действительно помогло ... я не понимаю почему, но большое вам спасибо, ребята <3
это потому, что он связывает его со всеми интерфейсами, а не только с localhost






Поскольку это сработало для вас, я опубликую это как ответ :) Что проливает свет на вашу ситуацию, так это то, что вы упомянули, что привязка порта MySQL в конфигурации установлена на
bind-address = 127.0.0.1
Вышеупомянутая конфигурация означала, что MySQL слушает только входящие запросы от localhost. Чтобы он слушал все интерфейсы, измените его на
bind-address = 0.0.0.0
Возможны риски безопасности, связанные с прослушиванием всех интерфейсов. Этот риск можно снизить, занеся в белый список определенные IP-адреса, указав пользователей с определенного хоста или добавив правила брандмауэра на сетевом уровне.
CREATE USER 'dbuser'@'192.0.0.100';
Справка:
Рад, что у вас все получилось, и наслаждайтесь пребыванием в SO. Ваше здоровье!
Переадресация порта должна быть
3306, а не3606.