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