UWP для MariaDB с использованием MySQL Connector Net 6.7.9 - PullRequest
0 голосов
/ 21 октября 2018

Я пытался заставить некоторый исходный код работать, прежде чем я начну работать над моим приложением.У меня это работало, может быть, год назад, поэтому что-то говорит мне, что есть проблема с обновлением / версией.Но любая помощь хороша.

У меня есть Raspberry Pi с настройками apache, MariaDB, php и т. Д. И т. Д. У меня работает простая веб-страница, поэтому apache в порядке, у меня есть другая веб-страница, которая извлекает данные из таблицы.так что MariaDB в порядке (хорошо, учитывая мою проблему).У меня настроен myphpadmin, и я могу войти в систему, создать новые базы данных, пользователей и т. Д.

Теперь я хотел бы, чтобы приложение UWP взаимодействовало с базой данных, размещенной на моем пи.Я создал нового пользователя с помощью SELECT и INSERT только для определенной базы данных (надеюсь, это уменьшает проблемы с безопасностью, но я новичок, поэтому, может быть, я желаю).

Затем я также нашел файл конфигурации mariadb и прокомментировалстрока привязки адреса.Строка пропуска сети больше не находится в файле, поэтому просто проигнорировал это.(это то, что документы говорят, чтобы разрешить удаленные подключения).

Я открыл порт 3306 на моем маршрутизаторе, и у меня также есть доменное имя и использую no-ip, но я предполагаю, что это все нормально, когда работает Apacheхорошо.Увидел, что кто-то говорит о SSH, я изменил свой SSH-порт, но я не думаю, что это будет проблемой.

Затем UWP.

В прошлый раз, когда я попробовал это, мне пришлось использовать MySQL ConnectorNet 6.7.9 как более новые версии не работали с RT.Поэтому я добавил это к ссылкам проекта.

Теперь для простого тестирования соединения у меня есть кнопка и TextBlock, нажмите кнопку, чтобы попытаться подключиться и вывести исключение / результат.Попробовал conn string builder, а также просто прямую строку, ни одна из них не работает.

    private void ConnectDatabase_Click(object sender, RoutedEventArgs e)
    {
        string ConnString;
        MySqlConnection Conn;

        MySqlConnectionStringBuilder Csb = new MySqlConnectionStringBuilder();
        Csb.Server = "http://rnd-domain.me";
        Csb.Port = 3306;
        Csb.UserID = "usr";
        Csb.Password = "passwd";
        Csb.Database = "testdb";


        ConnString = "server=http://rnd-domain.me;database=testdb;uid=usr;pwd=passwd;";
        Conn = new MySqlConnection(ConnString);

        try
        {
            Conn.Open();
            DbUpdateText.Text = "connected";
            Conn.Close();
        }
        catch(Exception ex)
        {
            DbUpdateText.Text = ex.Message;
        }
    }

Когда я нажимаю кнопку, ex.Message «Невозможно подключиться к любому из указанных хостов MySQL».В приложении нет ошибок, только это бесполезное сообщение.

Я погуглил это и потратил 80% своего воскресенья, пытаясь заставить это работать.Я добавил sslmode = none, charset = utf8, port = 3306.Я попытался использовать server = localhost или использовать свой текущий ip и даже использовать моего основного пользователя mariadb (не root).

В чем может быть проблема?

Спасибо.

Редактировать: Я просто использовал внутренний IP-адрес pi и получил новое ex.Message, понял это о SSl, добавил sslmode = none и все работает.

Так что теперь просто обойти проблему с доменным именем?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Проблема заключалась в использовании ПК (клиента) и raspi (сервера) внутри домашней сети.

Когда я изменил хост на внутренний IP-адрес raspi, все работало нормально.

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

Ваша строка соединения не совсем правильная.

Вы, вероятно, хотите это:

    server=rnd-domain.me;database=testdb;uid=usr;pwd=REDACTED;

Нет смысла упоминать http:// в строке соединения MySQL, потому чтосоединение не использует протокол HTTP.Скорее он использует протокол MySQL.

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