Назад | Перейти на главную страницу

Как с помощью 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-адресом его машины.

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

(Существует большая вероятность того, что по умолчанию 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

Находится в

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. На компьютере вашего коллеги установлен брандмауэр, блокирующий трафик. Вы можете попробовать отключить его, чтобы быстро устранить неполадки.
  2. Экземпляр MySQL не настроен для разрешения удаленных подключений. Вы можете попробовать подключиться к компьютеру друзей по telnet и посмотреть, разрешает ли он трафик.

    телнет 192.168.100.32 3306

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