MAMP & quot; Apache не может быть запущен, поскольку порт используется. & Quot; AND & quot; Не удается подключиться к локальному серверу MySQL через /tmp/mysql.sock

После перезапуска MAMP я заметил, что флажок MySQL Server не стал зеленым, как обычно. Я снова нажал «Запустить серверы» и получил сообщение «Apache не может быть запущен, потому что порт 8888 используется другим программным обеспечением». Странно, так как я не вносил никаких изменений в систему или приложение или устанавливал какие-либо обновления. Я открыл Chrome и ввел URL сайта, который я разрабатываю локально, и он появился без проблем. Но, когда я попытался войти на сайт с фиктивной учетной записью пользователя, я получил «SQLSTATE [HY000] [2002] Не могу подключиться к локальному серверу MySQL через сокет ‘/Applications/MAMP/tmp/mysql/mysql.sock’ (2) сообщение.

Что касается первой проблемы (Apache Port используется другой программой), я открыл терминал и >> sudo lsof -i -P | grep -i "listen" чтобы увидеть, какие порты будут отображаться. Когда MAMP был закрыт, вывод консоли был

launchd 1 root 23u IPv6 0x156733646a84db9h 0t0 TCP *:5900 (LISTEN)
launchd 1 root 24u IPv4 0x156733646a84eba8 0t0 TCP *:5900 (LISTEN)
launchd 1 root 28u IPv6 0x156733646a84d75u 0t0 TCP localhost:631 (LISTEN)
launchd 1 root 29u IPv4 0x156733646a84e3bu 0t0 TCP localhost:631 (LISTEN)
launchd 1 root 31u IPv6 0x156733646a84d31u 0t0 TCP *:22 (LISTEN)
launchd 1 root 32u IPv4 0x156733646a857ba5 0t0 TCP *:22 (LISTEN)
kdc 96 root 6u IPv6 0x156733646a84cedt 0t0 TCP *:88 (LISTEN)
kdc 96 root 8u IPv4 0x156733646c2a9ba5 0t0 TCP *:88 (LISTEN)
imagent 270 userhomedirectory 7u IPv4 0x156733646a1a13bb 0t0 TCP *:52216 (LISTEN)
EEventMan 279 userhomedirectory 4u IPv4 0x156733646a8573bb 0t0 TCP *:2968 (LISTEN)

Выход, когда работает MAMP (все перечисленное выше) +:

httpd 28772 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28786 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28790 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28791 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28792 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28793 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN)
httpd 28794 userhomedirectory 5u IPv6 0x169041156a84b55f 0t0 TCP *:8888 (LISTEN)

Итак, порт 8888 используется только при запуске MAMP, что также говорит мне о том, что веб-сервер фактически подключен. Поэтому я не понимаю, почему я получаю ошибку порта Apache.

В любом случае, в следующий раз я открыл Activity Monitor и уничтожил все запущенные httpd и mysqld процессы и перезапустил MAMP, но проблема осталась. Процесс mysqld никогда не появлялся после того, как я убил его в первый раз.

Затем я искал ТАК. Я наткнулся Почта относительно MAMP PRO и решил попробовать предложенные решения, но безрезультатно. То же самое касается эта почтаПредложение удалить и заново установить все приложение.

К настоящему времени я не могу сказать, является ли ошибка mysql причиной ошибки apache или ошибка apache вызывает ошибку mysql. Итак, я искал и попробовал несколько решений относительно ошибки MySQL, включая предложения от эта почта, а также эта почта, но никто из них не работал для меня. Я имею в виду, я буквально попробовал каждое предложение на этих страницах, от опубликованных ответов до комментариев.

Я также попытался перезагрузить компьютер, изменить настройки конфигурации портов apache, nginx и mysql, переключиться с apache на nginx, загрузить MySql MAMP из терминала, создать файл my.cnf с конфигурацией сокета. Ни один из которых не работал.

У кого-нибудь есть опыт с этим? Это ошибка порта Apache или ошибка сокета MySQL? Или что-то совершенно другое? И, учитывая, что не было никаких обновлений или изменений в системе или приложении, что могло вызвать это?

Заранее спасибо.

* ** Изменить 10 декабря 2014 г. ***
Так что я играл с этим всю ночь. Я переустановил приложение пару раз. Установил некоторые обновления и даже скопировал настройку MAMP моего ноутбука, которая работает, на мой рабочий стол. Но я все еще получил те же ошибки. Затем я изменил корень документа MAMP обратно по умолчанию Mac HD -> Applications -> MAMP -> htdocs и это сработало! Я ранее установил его /Users/userhomedirectory/Sites,

Я отправил это как редактирование вместо ответа, потому что проблема все еще существует. Смена корня документа обратно на Users/myhomedirectory/Sites выдает мне те же сообщения об ошибках, что и раньше, поэтому мое решение — скорее обходной путь. Надеюсь, что для кого-то это лампочка, потому что я до сих пор не могу понять, что может быть причиной и / или решением.

3

Решение

Я не знаю, поможет ли это кому-то … но это сработало для меня:

sudo apachectl stop 🙂

от https://stackoverflow.com/a/24287496/1420009

31

Другие решения

Я столкнулся с той же самой проблемой после обновления до yosemite и MAMP версии 3.0.7.3. Перепробовал много предложений и исправил там, но ни одно из них не помогло мне.

Когда он ударил меня! При нажатии «Установить веб» &MySQL порты до 80 & 3306 «кнопка в MAMP, MAMP устанавливает порт 80 для Apache AND Nginx. В результате возникает ошибка, так как оба настроены на использование одного и того же порта.
Я просто установил Nginx на другой случайный порт, нажал кнопку «ОК», и ошибки не появилось.

Я перезапустил Apache и MySQL. И вуаля!

Все мои локальные сайты работают так же, как и до обновления.

К счастью, я только что прочитал интересную статью, объясняющую, как настроить Nginx перед Apache, чтобы он служил статически и динамически независимо для оптимизации производительности. Что вызвало идею.

Я надеюсь, что это помогает!

3

Перейдите в конфигурацию MAMP и измените адрес порта 8888 в любой другой адрес

MAMP->Preferences->Ports->Apache Port

Я думаю, что это будет работать нормально

2

Как и Натан Рутман, это оказалось проблемой для меня. Я получаю те же ошибки, отображенные выше —
Apache couldn't be started because port 8888 is in use by some other software. … и MySQL Server не запускался.

Мне не повезло, меняя порты или перемещая каталог в htaccess.

Что сработало:

я пошел в Applications, выбранный MAMPи вывел Finder’s Get Info диалог. я добавил Read & Write разрешения для текущего пользователя и администраторов, нажал кнопку и нажал Apply to enclosed items...

Я сделал то же самое для MAMP Pro, просто чтобы убедиться, что мои базы покрыты.

Запустил MAMP, изменил порты по умолчанию, и бум! Все работает, включая MySQL Server — команды терминала не требуются.

Это продолжало работать успешно, когда я изменил свой каталог обратно на /Users/myuser/Sites/ папка, а также.

1

ОБНОВИТЬ:

На самом деле, это просто проблема с разрешениями. Я столкнулся с той же проблемой снова и просто сделал chown -R nathan:staff <dir> и перезапустил Apache в MAMP. Работало нормально.

ОРИГИНАЛЬНАЯ ПОЧТА:

Как ни странно, я думаю, что исправил проблему на своей машине. Посмотрев каталоги как для каталога htdocs по умолчанию, так и для каталога, который я хотел использовать, я заметил, что каталог по умолчанию принадлежит nrutman:admin в то время как каталог, который я хотел использовать, принадлежал nrutman:staff (один и тот же пользователь, другая группа).

Через панель «Информация» Finder (Cmd-I) я добавил разрешение на чтение / запись для Administrators группа в папку и удалил разрешение группы персонала. Я перезапустил MAMP и все заработало! Затем через chown Я изменил владельца обратно на nrutman:staff, Информационная панель Finder теперь выглядела так же, как и раньше, но теперь MAMP будет использовать этот каталог, не жалуясь на порты.

Определенно похоже на ошибку MAMP. Не совсем уверен, что происходит, но я надеюсь, что это поможет другим, кто борется с проблемой.

0

Смена порта Nginx помогла мне.

0

Если экземпляр MySQL не запущен, возможно, это проблема с правами доступа.
Щелкните правой кнопкой по значку -> run as administrator,

0

Я не имею в виду это тривиальным способом, но когда это случилось со мной, я начал пробовать некоторые из предложений здесь (разрешения и т. Д.), Но когда я только сделал перезагрузку компьютера, он работал впоследствии. Так что просто напоминание, чтобы попробовать перезагрузить, прежде чем пытаться другие.

0
По вопросам рекламы [email protected]