MySQL, работающий с 127.0.0.1, но не работающий с localhost?

У меня есть странная проблема в php MySQL:

php соединяется с 127.0.0.1 но не с localhost.

Как решить эту проблему?

12
задан Peter Lang 17 February 2010 в 19:37
поделиться

7 ответов

(Речь идет о комментарии к ответу gerry3 выше, но я пока не могу прокомментировать вопросы и ответы других пользователей).

Небольшое улучшение решения gerry3 - очень элегантное. Если я не ошибаюсь, строка

otherObject.displayOrderValue += delta;

фактически выполняет арифметику указатель , если displayOrderValue не имеет примитивного типа. Что может быть не то, чего ты хочешь. Вместо этого, чтобы установить значение объекта, я предлагаю:

otherObject.displayOrderValue = [NSNumber numberWithInt:[otherObject.displayOrderValue intValue] + delta];

Это должно правильно обновить ваше свойство объекта и избежать каких-либо EXC_BAD_ACCESS сбоев.

-121--2907318-

Идея 1. Разбить массив на группы для измерения суммы 2. Подсчитать сумму для каждой группы 3. Определите максимальную сумму

Здесь код

private Result GetMax(ICollection<int> items, int itemCount)
{
  return items.
    Take(items.Count - (itemCount - 1)).
    Select((value, index) => items.Skip(index).Take(itemCount)).
    Select((group, index) =>
      new Result
      {
        Index = index,
        Sum = group.Aggregate(0, (sum, i) => sum + (i == 0 ? int.MinValue : i))
      }).
    Max();
}

private struct Result : IComparable<Result>
{
  public int Index { get; set; }
  public int Sum { get; set; }

  public int CompareTo(Result other)
  {
    return Sum.CompareTo(other.Sum);
  }
}
-121--3950512-

localhost должен быть определен в файле хостов, который по умолчанию используется в Windows и большинстве ОС.

Проверьте следующий текстовый файл и посмотрите, что работает:

C:\WINDOWS\system32\drivers\etc\hosts

Обратите внимание, что «hosts» - это файл, без расширения, это не папка. Этот файл должен быть практически пуст, если вы видите записи либо ваш AV/спам блокатор добавил тонну записей, которые указывают на 127.0.0.1 или противные вредоносные программы записали мусор там, несмотря на то, новые записи ниже старых. Localhost должен быть первой записью в этом файле.

5
ответ дан 2 December 2019 в 07:02
поделиться

Если MySQL подключается к 127.0.0.1, он делает это через TCP / IP, тогда как если он подключается к localhost, он делает это через сокет.
Подходит ли PHP для поиска mysql.sock? Убедитесь, что php.ini и my.conf имеют совпадающие местоположения

1
ответ дан 2 December 2019 в 07:02
поделиться

Также загляните в базу данных mysql, которая определяет права доступа пользователей. Здесь вы можете определить, с каких исходных хостов данный пользователь может подключаться. Дополнительную информацию можно найти в http://dev.mysql.com/doc/refman/5.1/en/connection-access.html

2
ответ дан 2 December 2019 в 07:02
поделиться

Разрешает ли localhost адрес IPv6, а не IPv4, а MySQL не прослушивает адрес v4?

Решение состоит в том, чтобы сделать localhost разрешить адрес v4 ИЛИ заставить MySQL прослушивать адрес v6.

0
ответ дан 2 December 2019 в 07:02
поделиться

Попробуйте ping localhost в командной строке, возможно, он разрешается в ::1: IP6-эквивалент 127. 0.0.1

Чтобы исправить это, добавьте (или раскомментируйте) строку:

   127.0.0.1       localhost

в C:\WINDOWS\system32\drivers\etc\hosts

8
ответ дан 2 December 2019 в 07:02
поделиться

Я помню, что это давняя и задокументированная функция Mysql для Windows. Что-то о том, как работают локальные сокеты, или что-то в этом роде.

2
ответ дан 2 December 2019 в 07:02
поделиться

Попробуйте:

IE -> Инструменты -> Параметры -> Соединение -> Настройки локальной сети Проверить прокси-сервер обхода для локальных адресов

1
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

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