Ошибка подключения к Amazon EC2 MySQL из C # - PullRequest
1 голос
/ 20 октября 2011

У меня запущен экземпляр 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-пароль'.Спасибо!

Ответы [ 2 ]

1 голос
/ 20 октября 2011

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

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

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

...