|
|
|
| Здравствуйте!
Такая ошибка "нет доступа к mysql" часто происходит тогда, когда скрипт пытается держать подключение к БД свыше положенного на сервере.
Это проблема скрипта - он не должен так делать, он должен открывать подключение для чтения-записи, сделать дело и сразу же закрывать.
Многие (к сожалению) программисты этот момент не учитывают, думают, что сервер будет ждать выполнения их скрипты сколько угодно - потому открывают подключение, делают дело сколько захотят, а потом пытаются результат записать, на что часто и получают отбой.
В итоге я открываю подключение к mysql
$connection = mysql_connect("localhost", "user", "passw") or die("невозможно поключиться к MySQL.");
Сообщение "невозможно поключиться к MySQL" - довольно часто появляется. Я думаю, - это вследствие того, что я не закрываю доступ... Прав ли я? и как закрыть подключение? | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 00:03)
| | > Прав ли я?
Сомнительно.
> и как закрыть подключение?
mysql_close()
Все обычные (непостоянные) соединения закрываются автоматически при окончаниии выполнения скрипта.
А сколько времени выполняется скрипт?
Какая ошибка хоть?
// <?php
$connection = mysql_connect("localhost", "user", "passw") or die(mysql_error());
|
| |
|
|
|
|
|
|
|
для: sms-send
(21.06.2010 в 00:13)
| | То есть достаточно:
$connection = mysql_close();
?
Хм, а какие подключения есть постоянными?
Скрипты выполняются на сайте от очень короткого времени и иногда до 10 сек... - мне кажется, это тормозит сервер и пропадает подключение ... сайт в итоге перестает быть вообще рабочим
ошибку сказать пока не могу так как это происходит на сайте примерно раз в сутки, вернее я так замечал, попробую Ваш скрипт с выводом ошибки вставить, если обнаружу - потом сообщу. | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 00:24)
| | > Хм, а какие подключения есть постоянными?
Persistent Database Connections
В PHP открываются функцией mysql_pconnect. | |
|
|
|
|
|
|
|
для: sms-send
(21.06.2010 в 00:53)
| | у меня mysql_pconnect точно нет. Значит закрывать подключения не нужно? | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 01:14)
| | mysql_pconnect() предназначен для сессионных соединений, работа в рамках Web-страниц, PHP-скриптов по определению не является сессионной. Если вы пользуетесь mysql_connect() соединение автоматически закрывается при завершении работы скрипта. В любом случае полезно посмотреть список текущих mysql-процессов. | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 01:14)
| | Вот ошибка подключения - из-за которого сайт вообще не работает:
User ххх already has more than 'max_user_connections' active connections
Посоветуйте, пожалуйста, что тут надо сделать. Я не могу понять почему так?
Что значит одновременное подключение? - это когда в туже секунду или какую долю секунды одновременно идет подключение? | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 19:08)
| | Ты выполнил подключений больше, чем указано в max_user_connections. Закрывай ненужные соединения.
Только не
$connection = mysql_close();
|
а
mysql_close($connection);
|
| |
|
|
|
|
|
|
|
для: egubov93
(21.06.2010 в 20:35)
| | egubov93 , мне же сказали, что закрывать не обязательно, если подключения не постоянные. Таких у меня нет - тут надо работать над ускорением обработки кода... | |
|
|
|
|
|
|
|
для: 1prom
(21.06.2010 в 19:08)
| | ой, я понял, это когда не закроется одно соединение - второе уже открывается и так целых 100... поучается нужно работать над ускорением выполнения запросов и закрытия подключения... | |
|
|
|