|
|
|
| Не подскажите уважаемые, возможен ли такой вариант работы - выполнение запроса PHP происходит на одном сервере у провайдера, а база MySQL находится в другом месте (т.е. территориально они разнесены).
Команда @ $db = mysql_pconnect("192.234.59.072" , "user", "pass"); не дает соединения. Что делать? | |
|
|
|
|
|
|
|
для: nafa
(09.10.2005 в 10:59)
| | Да такой вариант возможен, для этого на сервере для пользователя "user" должно быть разрешено обращение с машины, где выполняется скрипт. Исправьте "192.234.59.072" на "192.234.59.72" и уберите @ - он подавляет вывод сообщений в окно браузера и невозможно понять в чём ошибка. Что пишет mysql_pconnect() после этого?
PS Вопросы, посвящённые MySQL, лучше сразу помещать в разделе MySQL | |
|
|
|
|
|
|
|
для: cheops
(09.10.2005 в 13:40)
| | Спасибо. Вот убрал @ , но в окно броузера ничего не выводится. Полный текст такой
<html>
<head>
<title>Book Search Results</title>
</head>
<body>
<hl>Book Search Results</hl>
<?
$db = mysql_connect("194.204.56.172" , "book-01", "zaq123");
if (!$db)
{
echo "Error: Could not connect to database. Please try again later.";
exit;
}
?>
</body>
</html>
Прошу прощение за проявленное невежество, но можно ли по подробнее про "для этого на сервере для пользователя "user" должно быть разрешено обращение с машины, где выполняется скрипт" Где это нужно делать и как? . На сервере стоит MySQL 4.10. Заранее спасибо. | |
|
|
|
|
|
|
|
для: nafa
(09.10.2005 в 21:27)
| | Скрипт выводит "Error: Could not connect to database. Please try again later."? и не выдаёт больше никаких комментариев? Странно... а долго выполняется - не может быть ошибки в IP-адресе?
>Где это нужно делать и как?
Дело в том, что у серверов MySQL достаточно гибкая система прав доступа - учётная запись сообщает не только имя, но и хост сети откуда к серверу может быть получен доступ. Например, если на сервер имеется учётная запись root@localhost - это означает, что пользователь root может обращаться к машине только с локальной машине, а с другой машины сети ему уже ничего не светит, хотя сервер и виден - его просто не пустят. А если аккаунт имеет вид wet@62.85.102.96 - это означает что пользователь может получить доступ только с хоста, с IP-адресом 62.85.102.96 - даже если он будет обращаться с локального хоста - его не пустят. Существуют и маски например root@% - получает доступ со всех машин сети, а wet@62.85.102.% из под сети 62.85.102.*. Пользователь softtime@%.softtime.ru - может получить доступ со всех машин домена softtime.ru и т.д.
Так вот одной из причин может быть то, что пользователю book-01 запрещено обращаться к базе данных с той машины где расположен скрипт. Настраивают привелегии как правило администраторы сервера - нужно обратиться в службу тех.поддержки. Если вы и вынуждены выполнять эти функции вам нужно настроить привелегии при помощи оператора GRANT, подробнее о котором можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4828 | |
|
|
|
|
|
|
|
для: cheops
(09.10.2005 в 22:08)
| | Выполняется примерно 2-5 секунд. никаких сообщений не выдает. Маска стоит book-01@% т.е. доступ со всех машин. Если пробывать сязываться с базой чарез ODBC то никаких проблем нет. Может это у провайдера (у которого запускается этот скрипт) что-то блокируется? | |
|
|
|
|
|
|
|
для: nafa
(10.10.2005 в 00:53)
| | Кое что выяснил у провайдера - у него старая версия версия PHP которая не совместима по паролю с MySQL 4.1 и надо завести пароль на пользователя в таблице пользователей через функцию oldpassword - что бы это значило? | |
|
|
|
|
|
|
|
для: nafa
(10.10.2005 в 11:36)
| | Ага... это лучше - а пользователей кто заводит вы или провайдер? | |
|
|
|
|
|
|
|
для: cheops
(10.10.2005 в 14:52)
| | Разобрался, проблема всё таки оказалась в пароле, лечится вот этим
UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user';
FLUSH PRIVILEGES;
взял отсюда http://dev.mysql.com/doc/mysql/en/old-client.html
cheops, большое Вам спасибо. | |
|
|
|