C # MySql соединение не может найти хост

0

У меня есть Java-программа, которая подключается к базе данных MySql и работает нормально. Теперь я хочу преобразовать его в программу С#, но я продолжаю получать сообщение об ошибке "Невозможно подключиться к любому из указанных хостов".

Я уже выполнил следующие решения:

Вот код для подключения к базе данных:

string connectionString = string.Format(
 "SERVER={0}; DATABASE={1}; UID={2}; PASSWORD={3};",
 "jdbc:mysql://" + host + ":" + port, dbName, userName, password);

// Prepare connecting to the database.
myConn = new MySqlConnection(connectionString);

MySqlCommand command = myConn.CreateCommand();
command.CommandText = @"SELECT * FROM table_name";

myConn.Open(); // <- MySqlException: Unable to connect to any of the specified MySQL hosts.
MySqlDataReader reader = command.ExecuteReader();

List<string> exampleStore = new List<string>();
while (reader.Read())
{
    // Just an example for storing data.
    exampleStore.Add(reader.GetString(0));
}

Java-версия подключается к тому же серверу с теми же значениями, что и я здесь, поэтому, пожалуйста, не предлагайте проверить, находится ли сервер в сети. Поэтому проблема должна быть в моем коде С#, я заметил Class.forName("com.mysql.jdbc.Driver").newInstance ();

В java-коде. Похоже, что здесь активирован водитель, возможно, С# нужно сделать что-то подобное, что мне не хватает?

Изменить: Таким образом, строка соединения должна быть: string connectionString = string.Format( "SERVER = {0}; DATABASE = {1}; Port = {2}; UID = {3}; PASSWORD = {4};", host, dbName, порт, имя_пользователя, пароль));

Использул некоторые дополнительные элементы из java-версии, не думаю, что они вызовут эти проблемы. Спасибо за помощь ребятам.

  • 0
    Вы пытались изменить строку подключения? Попробуйте это: "Data Source=" + Server_IP + ";" + "User ID=" + Username + ";" + "Password=" + Password + ";"
  • 0
    Спасибо за предложение, попробовал это, но та же самая ошибка, хотя это занимает намного больше времени, прежде чем ошибка будет показана. Также попытался указать> "Database =" + dbName <, но тоже не работает.
Теги:

2 ответа

1
Лучший ответ

Стандартная строка подключения: Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;.

Обратите внимание, что порт указан отдельно, с портом = 1234, а не в поле "Сервер". Кроме того, удалите jdbc:mysql: с начала поля сервера, как это специфично для драйвера JDBC; используйте обычную строку URI. Больше ничего не нужно.

  • 0
    Спасибо за объяснение
1

Неправильная строка подключения.

Try:

string connectionString = string.Format("SERVER={0}; DATABASE={1}; Port={2}; UID={3}; PASSWORD={4};", host, dbName, port, userName, password));
  • 0
    Спасибо, это работает :), я отметил Алекса как ответ, потому что он был первым и объяснил это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню