С помощью WebMatrix, как мне подключиться к базе данных MySQL на компьютере коллеги?

Я искал Google, пытаясь выяснить, как это сделать, но по сути я хочу подключиться к базе данных коллег MySQL для совместной работы над установкой Wordpress.

Мне не повезло, и я продолжаю получать сообщение о невозможности подключения:

Unable to connect to any of the specified MySQL hosts.

MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
   at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at Microsoft.WebMatrix.DatabaseManager.MySqlDatabase.MySqlDatabaseProvider.TestConnection(String connectionString)
   at Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.TestConnection(DatabaseConnection databaseConnection, String configPathState)
   at Microsoft.WebMatrix.DatabaseManager.Client.ClientConnection.Test(ManagementConfigurationPath configPath)
   at Microsoft.WebMatrix.DatabaseManager.Client.DatabaseHierarchyInfo.EnsureLoaded()

Детали подключения копируются из строки подключения моего коллеги, за исключением того, что сервер был изменен в соответствии с IP-адресом его компьютера.

WebMatrix MySQL Connection

Я не уверен, есть ли порт брандмауэра, который мне нужно открыть, или файл конфигурации, который я должен изменить, но мне пока не очень повезло.

(Существует большая вероятность, что по умолчанию web matrix / iis express не устанавливает базу данных mysql, которую она создает, для приема удаленных подключений. Если кто-нибудь знает, как это изменить, это будет здорово!)

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Порт открыт

Я открыл порт 3306 на брандмауэре Windows на компьютере моего коллеги.

Теперь у меня есть следующая ошибка:

Host 'DESKTOP019-PC' is not allowed to connect to this MySQL server

MySql.Data.MySqlClient.MySqlException (0x80004005): Host 'DESKTOP019-PC' is not allowed to connect to this MySQL server
   at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at Microsoft.WebMatrix.DatabaseManager.MySqlDatabase.MySqlDatabaseProvider.TestConnection(String connectionString)
   at Microsoft.WebMatrix.DatabaseManager.IisDbManagerModuleService.TestConnection(DatabaseConnection databaseConnection, String configPathState)
   at Microsoft.WebMatrix.DatabaseManager.Client.ClientConnection.Test(ManagementConfigurationPath configPath)
   at Microsoft.WebMatrix.DatabaseManager.Client.DatabaseHierarchyInfo.EnsureLoaded()

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

РЕДАКТИРОВАТЬ: Найдено MySQL Client

Находится в

Start > All Programs > MySQL > MySQL Server %version% > MySQL Command Line Client

http://forums.iis.net/t/1173668.aspx

РЕДАКТИРОВАТЬ: предоставить привилегии пользователей

После нахождения клиента sql исправление соединения было выполнено с помощью следующей команды:

GRANT ALL PRIVILEGES ON databasename.* to ‘databaseuser’@'hostname' IDENTIFIED BY 'databasepassword';

http://31bit.com/technology/86-mysql-database/302-how-to-grant-remote-access-to-a-mysql-database

Спасибо DKNUCKLES за толчок порта. Я сходил с ума в поисках конфигурационных файлов и вещей для IIS Express, но все, что нужно, - это открытие порта и предоставление разрешений пользователям!

РЕДАКТИРОВАТЬ: Доступ запрещен в установке Wordpress.

Теперь я подключился, я получил отказ в доступе через WordPress. Я получал "Ошибка при установлении соединения с базой данных", что было довольно смутной ошибкой.

Я сделал поиск и нашел страницу, которая может проверить соединение:

testconnection.php

<?php
    $link = mysql_connect('databaseip_or_localhost', 'databaseuser', 'databasepassword');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
?>

Я ввел правильные учетные данные, добавил страницу в мою установку WordPress и посетил ее.

Я получил сообщение:

Could not connect: Access denied for user 'wordpressuser457'@'DESKTOP019-PC' (using password: YES)

Оказалось, что я тоже неправильно написал имя пользователя (у меня был очень длинный день) - это должно было быть wordpress457user НЕ wordpressuser457,

Ненавижу, когда глупая вещь уходит на поиски.

Надеюсь, что это поможет всем, кто хочет сделать то же самое в будущем.

1 ответ

Решение

Без какой-либо дополнительной информации я предпочитаю, что сервер не разрешает удаленные подключения. Это может быть вызвано любым количеством причин

  1. Ваш коллеги компьютер имеет брандмауэр, блокирующий трафик. Вы можете попробовать отключить его, чтобы быстро устранить неполадки
  2. Экземпляр MySQL не настроен для разрешения удаленных подключений. Вы можете попробовать подключиться к компьютеру друзей и посмотреть, разрешает ли он трафик.

    телнет 192.168.100.32 3306

  3. Это также может быть проблема с разрешениями - см. Эту ссылку для возможной причины

Другие вопросы по тегам