Как решить проблему подключения к базе данных mysql с помощью коннектора mysql и c #? - PullRequest
0 голосов
/ 20 октября 2019

Я создал сервер с Unity 2019, собирая некоторые данные, и я пытаюсь подключиться к своей базе данных MySQL. База данных хранится локально. Я могу получить доступ к моей БД в простом C # проекте (не в Unity), но мне не повезло с Unity. Есть ли у вас какие-либо идеи о том, как решить эту проблему?


До сих пор я нашел какой-то пост об импорте DLL из MySQL Connector.net:

Я добавил следующую DLL:

  • Из MySQL Connector.Net 8.0 (в папке MySQL \ ConnectorNET8.0 \ Assemblies \ v4.5.2)

    • MySQL.Data.dll
    • BouncyCastle. Crypto.dll
    • Renci.SshNet.dll
    • SshNet.Security.Cryptography.dll
    • Google.Protobuf.dll
  • Из Unity Mono2.0:

    • I18N.CJK.dll
    • I18N.dll
    • I18N.MidEast.dll
    • I18N.Other.dll
    • I18N.Rare.dll
    • I18N.West.dll

С его помощью я смог использовать MySql.Data.MySqlClient и создайте MySqlConnection.

Однако, когда я пытаюсь открыть соединение, я получаю:

Error: 0 : Unable to connect to any of the specified MySQL hosts.

Я проверил строкуиспользуется для создания MySqlConnection с использованием той же строки в другом проекте C #, и там все работает нормально.

Я попытался добавить кодировку ( Unity3D connection to MySQL error ), поставив заглавные буквы ... но без улучшения.

На данный момент я не знаю, блокирует ли Unity каким-либо образом соединение или я что-то упускаю.

Кажется, я не единственныйборется с этим ( Доступ к базе данных MySQL с помощью c # on unity? , https://www.reddit.com/r/Unity3D/comments/902wy3/best_way_to_retrieve_game_data_item_list_stats/, https://www.reddit.com/r/Unity3D/comments/c7b101/is_it_possible_to_use_systemdatasqlclient_in/, https://www.reddit.com/r/Unity3D/comments/8c25mu/unity_server_how_to_connect_to_mysql/).

Я знаю, что некоторые люди используют PHP (илинекоторый другой веб-сервер) как посредник между Unity и MySQL, но это звучит немного излишне для чего-то, что отлично работает в C # вне Unity ...

Вот код, который я использую для подключения к MySQL, connection - MySqlConnection, частный член моего класса, я попробовал эти строки в классической функции Unity Start моего класса

string dataSource = "localhost";
string port = "3306";

if (connection != null)
{
    connection.Close();
}

string connStr = "Datasource=" + dataSource +
                 ";port=" + port +
                 ";username=" + Global.Username +
                 ";password=" + Global.Password +
                 ";database=" + dbName;

connection = new MySqlConnection(connStr);

try
{
    Debug.Log("Connecting to MySQL...");
    connection.Open();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

Просто, чтобы вы знали: я также разместил вопрос наReddit (r / Unity3D)

...