не могу подключиться к базе данных удаленно в приложении c #, которое я могу увидеть, посетив сайт phpmyadmin этого сервера - PullRequest
0 голосов
/ 27 октября 2018

Я добавил базу данных через phpmyadmin на сервере.Я могу получить к нему доступ через http://ipaddress/phpmyadmin.но когда я пытаюсь использовать эти учетные данные для подключения к этой базе данных в приложении ac #, я получаю сообщение об ошибке: невозможно получить список базы данных.

У меня нет права доступа к серверу.У меня есть пользователь, который имеет права на два дБ, которые я вижу, когда я удаленно подключаюсь к phpmyadmin этого сервера.Возможно ли, что у меня есть право на БД только через phpmyadmin, но я не могу получить к нему доступ через приложение, потому что у меня нет права делать это, потому что MySQL запрещает это?У меня также есть малиновый пи под рукой.использует его в качестве сервера базы данных лучшую альтернативу, чем эта?

1 Ответ

0 голосов
/ 28 октября 2018

Поскольку phpMyAdmin работает на веб-сервере, большинство людей устанавливают его на тот же компьютер, на котором работает база данных, и получают к нему удаленный доступ через сеть.Это означает, что их phpMyAdmin общается с MySQL локально, часто без соединения с сервером.С другой стороны, ваше приложение на C # - это скомпилированное приложение, которое, скорее всего, будет работать на вашем клиентском компьютере, а не на сервере. Это означает, что любое соединение приложения с базой данных происходит через сеть (или Интернет, опять же в зависимости от вашей конфигурации).,Поскольку выставление порта MySQL, как правило, является плохой идеей, ваш MySQL может быть настроен на прослушивание только локально, или у вас может быть межсетевой экран или соединение NAT, блокирующее вас даже от доступа к серверу.В этом случае вам может понадобиться переосмыслить способ взаимодействия с базой данных (зачастую раскрытие API является лучшим решением, чем открытие для мира порта 3306).

Возможно также, что вы используете дваразные учетные записи пользователей.Для MySQL отдельная учетная запись пользователя состоит не только из имени пользователя, но и имени хоста.Вы можете использовать подстановочный знак хоста (%), что означает все хосты, за исключением того, что это действительно «все хосты, подключающиеся через сетевое соединение TCP / IP».

Возможно, что ваше приложение и ваш phpMyAdmin используют два разных соединенияметоды;один с использованием TCP / IP, а другой с использованием сокетов.Проверьте, какой phpMyAdmin использует (самый простой способ сделать это - посмотреть на хост, к которому подключается phpMyAdmin; «localhost» - это соединение через сокет, а «127.0.0.1» - это сеть).Настройте приложение C # таким же образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...