2016-11-07 8 views
0

Я много искал, но не смог решить эту проблему. Я могу получить доступ к серверу MySQL, работающему на разных машинах Windows. шаги, которые я взял вКак подключиться к серверу mysql, работающему на виртуальной машине Linux в azure

  1. изменения my.ini адрес файла привязки к 0.0.0.0
  2. создание пользователя и предоставлении разрешения на GRANT ALL PRIVILEGES ON DATABASE.* TO [email protected]'%' IDENTIFIED BY 'password';
  3. из командной строки окна MySQL сервер mysql -h windows server ip -u user -p

его отлично работает и из workbench MySQL. Я могу подключиться к серверу Windows MySQL с моей машины. НО, когда в виртуальной машине Linux я сделал то же самое

  1. изменение файла my.cnf и изменение адреса привязки до 0.0.0.0.
  2. создания пользователя и предоставление разрешения на GRANT ALL PRIVILEGES ON DATABASE.* TO [email protected]'%' IDENTIFIED BY 'password';
  3. Из командной строки сервера LINUX MySQL mysql -h linux server ip -u user -p

    , но для этого я получаю следующее сообщение об ошибке после предоставления пароля ERROR 2003 (HY000): Не удается подключиться к MySQL сервер «Linux сервер IP» (10060) также при подключении с помощью C# следующую строку соединения <add name="MySqlConnection" connectionString="Server=LINUX_VM_SERVER_IP;Database=database;Uid=user;Pwd=password" providerName="MySql.Data.MySqlClient" /> я получаю Ошибка: Не удается найти указанный и MySQL хост

  4. Я проверил в LINUX_VM, что 0.0.0.0:3306 находится в состоянии прослушивания.

  5. если я пытаюсь службы MYSQL сервера Telnet LINUX_VM с использованием />telnet LINUX_VM_IP 3306 я получил ОШИБКА: Подключение к LINUX_VM_IP ... Не удалось открыть подключение к узлу, на порт 3306:

+0

Вы пытаетесь подключиться извне Azure (например, в локальной машине)? Трудно сказать, поскольку вы никогда не указываете детали - просто множество настроек и ошибок. –

+0

Если вы использовали шаблон рынка по умолчанию, то ваша группа сетевой безопасности (NSG) не будет иметь входящего правила для него для MySQL, поэтому вам нужно добавить это правило. –

+0

Я пытаюсь подключиться извне лазурь. из моей локальной машины MySQL workbench, а также из C# Web API. соединение базы данных внутри виртуальной машины работает и протестировано с локально размещенным приложением в vm.однако это ошибка, которую я пробовал и получаю после подключения за пределами azure Linux VM. –

ответ

2

Первый , попробуйте подключиться к базе данных на виртуальной машине, где размещена база данных. Если соединение выполнено успешно, конфигурация базы данных верна. В противном случае проверьте конфигурацию своей базы данных.

Во-вторых, если вы можете подключиться к базе данных на виртуальной машине, то наиболее вероятной причиной этой проблемы является межсетевой экран. Убедитесь, что локальный брандмауэр (iptables) разрешает входящее соединение на порту 3306. Для целей тестирования вы можете временно отключить брандмауэр. Также проверьте, правильно ли настроен NSG, чтобы обеспечить входящий трафик на порт 3306.

Кроме того, если VNET был связан с NSG, нам также необходимо разрешить входящий трафик в NSG.

enter image description here

+0

Благодарим вас за ответ, я могу подключиться к базе данных внутри azure Linux VM. я проверю те конфигурации, которые вы сказали, и я дам вам знать, когда закончите. –

+0

ОК. как вы сказали, это возможно, поскольку наша команда обсуждает, но мы не используем это, потому что мы решили не разглашать базу данных из vm, спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^