Ошибка подключения к Amazon EC2 MySQL с C#

#c# #mysql #amazon-ec2 #connection-string

#c# #mysql #amazon-ec2 #строка подключения

Вопрос:

У меня запущен экземпляр AWS EC2. Я пытался установить соединение с моим MySQL следующим образом на C#

 MySqlConnection l_DBConn = new MySqlConnection();
l_DBConn.ConnectionString = "Server=my-ec2.compute-1.amazonaws.com;Port=3306;Database=mydatabase;uid=root;password=mypassword;port=3306;charset=utf8"
MySqlCommand command = l_DBConn.CreateCommand();
command.CommandText = "select * from users";
MySqlDataReader Reader = command.ExecuteReader();
  

Ошибка, полученная при запуске последней строки: «Соединение должно быть действительным и открытым».. Я все еще могу подключиться к своему экземпляру, используя Filezilla, Putty и MySQL WorkBench также (с SSH). И я использую MySQL.Data.MySqlClient в своем коде. У кого-нибудь есть какие-либо идеи по этому поводу? Это потому, что мой экземпляр не разрешает удаленный доступ или проблема с моей строкой подключения?

Заранее благодарю вас, Уэйн.

Редактировать: проблема решается путем добавления l_DBConn.Open() и добавления моего IP-адреса на сервер с помощью RANT ALL PRIVILEGES ON . ДЛЯ root @ ‘hostname’, ИДЕНТИФИЦИРУЕМОГО ‘root-паролем’. Спасибо!

Ответ №1:

Попробуйте вызвать l_DBConn.open() перед выполнением программы чтения. Ошибка подразумевает, что соединение не открыто, поскольку вы явно не открыли его

Комментарии:

1. Спасибо, я добавил, и появилась ошибка, в которой говорится, что мой хост не позволяет создать соединение с сервером. Затем я добавил свой IP-адрес на сервер, используя GRANT ALL PRIVILEGES ON . ДЛЯ root @ ‘hostname’, ИДЕНТИФИЦИРОВАННОГО с ПОМОЩЬЮ ‘root-password’, и проблема решена. Спасибо!

Ответ №2:

Некоторые идеи:

  • Сначала убедитесь, что вы можете подключиться к своей базе данных локально.
  • Настроен ли Sql Server для разрешения смешанной аутентификации
  • Откройте порт 3306 в брандмауэре EC2 и брандмауэре Windows, если вы его используете.

Комментарии:

1. Я могу запустить код локально. Проблема заключается в вашем втором предложении: мой sql server пока не разрешает смешанную аутентификацию. Решил это, добавив мой ip. Спасибо!