тайм-аут mysql_connect - PullRequest
       34

тайм-аут mysql_connect

2 голосов
/ 04 марта 2011

Я пытаюсь настроить PHP-фреймворк на моем компьютере Mac 10.6, и он продолжает давать ошибки во время установки из-за проблем с подключением базы данных.Поэтому я собрал небольшой php-скрипт, чтобы посмотреть, смогу ли я подключиться к серверу сам, и он тоже не смог.Время операции истекло.

Однако я могу войти в MySQL из командной строки совершенно нормально.Только PHP имеет эти проблемы с подключением.У кого-нибудь есть идеи?

Вот сценарий.

<?php
  $connection = mysql_connect("http://localhost", "root", "");
if( $connection ) {
  mysql_close( $connection );
  die('TRUE');
}else {
  die('Could not connect: ' . mysql_error());
}

?>

РЕДАКТИРОВАТЬ: Я пытался удалить http: //, но затем я получаю «Нет такой ошибки файла.»

PHP Warning:  mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/newuser/Downloads/t.php on line 2
PHP Warning:  mysql_connect(): No such file or directory in /Users/newuser/Downloads/t.php on line 2
Could not connect: No such file or directory

Ответы [ 4 ]

3 голосов
/ 04 марта 2011

Вы используете это:

mysql_connect("http://localhost", "root", "");

Но ваш хост MySQL не http://localhost: возможно, localhost.


Попробуйте удалить это http://,используя это:

mysql_connect("localhost", "root", "");


Как примечание: работа с учетной записью root не рекомендуется - даже на платформе разработки.


РЕДАКТИРОВАТЬ после комментария: В этом случае попробуйте с 127.0.0.1 (IP-адрес localhost)


И если вы действительно хотите использовать сокеты Unix, вам нужно будет найти, какой сокет используется вашим сервером MySQL (это должно быть указано в его конфигурации) ;например, в моем /etc/mysql/my.cnf у меня есть:

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock

Затем вы захотите, чтобы PHP использовал тот же:

1 голос
/ 04 марта 2011

Используйте «127.0.0.1», это приведет к использованию TCP4, вставленной в сокеты.

Если вы хотите использовать сокеты, в соответствии с этим документом сокетом по умолчанию в Mac OS X является:

/tmp/mysql.sock

Если это значение по умолчанию, вы должны отредактировать конфигурацию php или иметь файл .htaccess с:

php_value mysql.default_socket "/tmp/mysql.sock"
1 голос
/ 04 марта 2011

Удалить http:// и использовать имя хоста localhost только.

1 голос
/ 04 марта 2011

Удалите «http://"» из параметра mysql_connect. Ему нужен хост, а не HTTP-URL.

...