Потерянное соединение с MySQL

В эти дни аппаратные средства являются довольно мощными и дешевыми, таким образом, можно иметь большое значение только при помощи достойного сервера. Если, как Вы говорите, Ваша база данных главным образом для чтения, то Poweredge 2950 с 16 ГБ RAM и шести 15K дисков RAID5 (или 6) является очень мощной основой для SQL Server; добавьте столько ядер, сколько Вы хотите, но даже ядра четверки проводов с парной скруткой не являются настолько дорогими. Я думаю, что эти 2950 возьмут до 64 ГБ RAM, хотя это будет дорого!

Ваши аппаратные средства могут уже быть этим мощным. Раз так Вы смотрите на ступенчатое изменение в питании и стоимости, и раз так я думаю, что Вам нужен лучший совет, чем всего несколько сообщений на ServerFault :-)

МЛАДШИЙ

0
задан 20 February 2010 в 23:14
5 ответов

Проверьте файл журнала MySQL, если существует что-то об этой ошибке. Если Вы хотите подключить сокет MySQL Unix использования, изменить эту строку:

socket          = /tmp/mysql.sock

кому:

socket          = /var/run/mysql/mysql.sock

Это должно решить эту проблему.

1
ответ дан 4 December 2019 в 23:11

Попытка:

$dblocation="localhost";
0
ответ дан 4 December 2019 в 23:11
  • 1
    Предупреждение: mysql_connect () [function.mysql-подключение]: Can' t соединяются с локальным сервером MySQL через сокет '/var/run/mysql/mysql.sock' (2) в/usr/local/httpd/htdocs/mysql.php на строке 8 Oshibka podklucheniya k основа –   20 February 2010 в 21:04
  • 2
    Отправьте [mysqld] раздел своего my.conf. –  EEAA 20 February 2010 в 21:57

MySql работает? И PHP правильно установлен соединиться с ним в своем конфигурационном файле (/etc/php.ini)?

0
ответ дан 4 December 2019 в 23:11
  • 1
    выполнение, i' ve отправленная часть конфигурации –   20 February 2010 в 23:07
  • 2
    Ваш php.ini isn' t действительно релевантный в этом случае. Как я попросил прежде, отправьте [mysqld] раздел своего my.cnf. –  EEAA 20 February 2010 в 23:12
  • 3
    хорошо, просто отправленный –   20 February 2010 в 23:20

Я в основном собираюсь бессмысленно повторить хорошие идеи, уже отправленные, но я хочу, чтобы Вы попробовали несколько вещей в порядке в надежде на определение местоположения определенного преступника.

Ваш код является звуковым, так попытайтесь протестировать это в частях, таким образом, можно вычеркнуть то, что на самом деле работает. Необходимо найти, что и 127.0.0.1 и localhost прекрасны в примере выше. И это нечетно, что Ваши журналы ошибок говорят Вам, что это не может найти/var/run/mysql/mysql.sock начиная с Ваших ссылок конфигурации/tmp/mysql.sock (Вы попытались установить mysql по установке ОС по умолчанию?).

  1. Проверьте, что можно на самом деле соединиться с mysql из командной строки (все, что я собираюсь предложить, спорно, если у Вас нет ssh),

  2. Выполните свой код php из Вашей командной строки. Вам будет нужен php cli. Вот установка:

    вкусная установка php-cli (Redhat)

    склонный - получают установку php5-cli (Debian)

Сообщите нам, успешны ли или или оба из этих тестов.

0
ответ дан 4 December 2019 в 23:11

MySQL открыл сокет в/tmp/mysqld.sock, но PHP ищет сокет/var/run/mysql/mysql.sock.

Или необходимо заставить PHP смотреть в/tmp/mysql.sock или заставлять MySQL создавать сокет в/var/run/mysql/mysql/sock - как предложено Kedare.

Изменение PHP было бы менее разрушительным. Ваш конфигурационный файл имеет две записи:

mysql.default_socket =

Измените оба из них (только один будет в действительности, но я не знаю который) к:

mysql.default_socket = /tmp/mysql.sock

MySQL является немного странным: для клиентов MySQL "localhost" означает, используют сокет Домена UNIX для базы данных.

У меня есть чувство, что фиксация этой части только возвратит Вас Вашей исходной проблеме:

Lost connection to MySQL server at 'reading initial communication packet', system error: 111

Это походит на несовместимость между версиями клиента и сервера. Вы пользуетесь 3,23 библиотеками, чтобы говорить с 5,1 серверами?

0
ответ дан 4 December 2019 в 23:11

Теги

Похожие вопросы