У меня есть виртуальная машина Linux, которую я арендую. На этой виртуальной машине Linux я установил сервер MySQL с двумя пользователями, помимо корневого, "Unity@127.0.0.1" и "Unity2@localhost". У меня также есть Docker, установленный на этой виртуальной машине Linux. Я уже успешно развернул сервер Unity в контейнере Docker и отправил данные клиенту на моем ПК. Для этого я установил MySQL через NUGET для Unity.
Scenshot MySQL через Nuget для Unity < /p>
Вот мой код, который я использую для подключения к серверу MySQL. Я использую debug.log (), чтобы увидеть, где именно мои ошибки кода, это номер 3, что означает «dbcon.open ();»; Не удается. < /p>
using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;
using Unity.Netcode;
public class MySQLScript : MonoBehaviour
{
void Start()
{
MySQLFunction();
}
[Rpc(SendTo.Server)]
public void MySQLFunction()
{
Debug.Log("MySQL Function START");
string connectionString =
"Server=127.0.0.1;" +
"Database=unity_data;" +
"UserID=unity;" +
"Password=;" +
"Pooling=false";
Debug.Log("1");
IDbConnection dbcon;
Debug.Log("2");
dbcon = new MySqlConnection(connectionString);
Debug.Log("3");
dbcon.Open();
Debug.Log("4");
IDbCommand dbcmd = dbcon.CreateCommand();
Debug.Log("5");
string sql =
"SELECT userid, username " +
"FROM unity_table";
Debug.Log("6");
dbcmd.CommandText = sql;
Debug.Log("7");
IDataReader reader = dbcmd.ExecuteReader();
Debug.Log("8");
while (reader.Read())
{
Debug.Log("READ Start");
string UserId = (string)reader["userid"];
string UserName = (string)reader["username"];
Debug.Log("userid: " + UserId + "username: " + UserName);
Debug.Log("READ End");
}
Debug.Log("9");
reader.Close();
Debug.Log("10");
reader = null;
Debug.Log("11");
dbcmd.Dispose();
Debug.Log("12");
dbcmd = null;
Debug.Log("13");
dbcon.Close();
Debug.Log("14");
dbcon = null;
Debug.Log("MySQL Function END");
}
}
Код взят с следующего сайта: https://www.mono-project.com/docs/datab ... ers/mysql/
Я попробовал код с официального веб-сайта: https://www.nuget.org/packages/mysql.data/brybrbre. Ошибка. < /p>
Я также попытался изменить пользователя с «Unity» на «Unity2» и адрес сервера, который я использую с «127.0.0.1» на «LocalHost», но оба они дают одну и ту же ошибку. < /p>
Я использую эту команду, чтобы начать свой контейнер Docker с контейнером Unity Server Build: < /p>
docker run --network host -p 7777:7777/udp private_repository_name:tag_name
< /code>
Я использую "-сети-хост", потому что, как я понимаю, это заставляет контейнер работать как локальный хост, что, я думаю, нужно. Порт - 7777, так как это порт UDP, который имеет транспорт Unity в сборке сервера Unity.CryptographicException: Chain instance is empty.
at Mono.Unity.UnityTlsContext.ProcessHandshake () [0x00047] in :0
at Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus status, System.Boolean renegotiate) [0x000da] in :0
at (wrapper remoting-invoke-with-check) Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake(Mono.Net.Security.AsyncOperationStatus,bool)
at Mono.Net.Security.AsyncHandshakeRequest.Run (Mono.Net.Security.AsyncOperationStatus status) [0x00006] in :0
at Mono.Net.Security.AsyncProtocolRequest.ProcessOperation (System.Threading.CancellationToken cancellationToken) [0x000fc] in :0
Rethrow as AuthenticationException: Authentication failed, see inner exception.
at Mono.Net.Security.MobileAuthenticatedStream.ProcessAuthentication (System.Boolean runSynchronously, Mono.Net.Security.MonoSslAuthenticationOptions options, System.Threading.CancellationToken cancellationToken) [0x00262] in :0
at MySql.Data.Common.Ssl.StartSSLAsync (System.IO.Stream baseStream, System.Text.Encoding encoding, System.String connectionString, System.Threading.CancellationToken cancellationToken, System.Boolean execAsync) [0x003c2] in :0
at MySql.Data.MySqlClient.NativeDriver.OpenAsync (System.Boolean execAsync, System.Threading.CancellationToken cancellationToken) [0x006c7] in :0
at MySql.Data.MySqlClient.Driver.OpenAsync (System.Boolean execAsync, System.Threading.CancellationToken cancellationToken) [0x00092] in :0
at MySql.Data.MySqlClient.Driver.CreateAsync (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings, System.Boolean execAsync, System.Threading.CancellationToken cancellationToken) [0x00152] in :0
at MySql.Data.MySqlClient.Driver.CreateAsync (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings, System.Boolean execAsync, System.Threading.CancellationToken cancellationToken) [0x0020b] in :0
at MySql.Data.MySqlClient.MySqlConnection.OpenAsync (System.Boolean execAsync, System.Threading.CancellationToken cancellationToken) [0x00592] in :0
at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00012] in :0
at MySQLScript.MySQLFunction () [0x0003a] in C:----\Assets\MySQL\MySQLScript.cs:46
at MySQLScript.Start () [0x00001] in C:----\Assets\MySQL\MySQLScript.cs:19
< /code>
Я уже дважды проверил, если мой порт MySQL 3306 включен в брандмауэр UFW и попробовал обновить мои сертификаты на виртуальной машине Linux, сделав это: < /p>
update-ca-certificates
apt-get install -y ca-certificates
certmgr -list -c Trust
cp -R /usr/share/.mono/certs/Trust/* ~/.config/.mono/certs/Trust/
< /code>
Я не настолько хорош с вещами Sys Admin и Enity Engine, поэтому я не знаю, куда идти отсюда. Буду признателен за любую помощь или общие указания, в которых я должен рассчитывать, чтобы выяснить это.FROM ubuntu:latest
WORKDIR /app
COPY . .
EXPOSE 7777
CMD ["./Build_exp1.x86_64"]
Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-a-unity
«Cryptographicexception: экземпляр цепи пуст». Ошибка при подключении сервера Unity в контейнере Docker к серверу MySQL ⇐ MySql
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python в контейнере Docker отказался от подключения к Postgres в сетевом контейнере Docker
Anonymous » » в форуме Python - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Приложение Java работает медленно при подключении к серверу MySQL, если он не на LocalHost
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-