Я использую этот код, но не подключаюсь к sql-сервису для удаленного подключения, а ошибка - fire.I получить эту ошибку:
Couldn't connect to SQL Server on XX.XXX.XX.XX
код:
<?php
$myServer = "XX.XXX.XX.XX";
$myUser = "New";
$myPass = "123";
$myDB = "Live";
//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB"); ?>
Что это сообщение об ошибке?
Сначала попробуйте telnet-порт на удаленном сервере, по умолчанию он 3306. Если вы не можете получить доступ к этому порту, он, вероятно, не разрешен на брандмауэре, или сервер mysql не прослушивает удаленные подключения.
Затем проверьте настройки mysql на сервере, по умолчанию он доступен только с localhost. На серверах linux обычно в /etc/mysql/my.cnf
просто комментируют эту строку:
bind-address = 127.0.0.1
Затем проверьте авторизацию пользователя, который вы используете для входа в систему, обратите внимание, что вам нужна авторизация для входа в систему с того места, где вы сейчас находитесь, и авторизации для входа на сервер (в качестве локального хоста).
Пример из http://dev.mysql.com/doc/refman/5.1/en/adding-users.html:
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
WITH GRANT OPTION;
создает пользователя с именем пользователя "monty" и паролем "some_pass" со всеми привилегиями во всех таблицах во всех базах данных (*.*)
из любого места (localhost
и %
- как любой ip).