Когда вы используете значение по умолчанию 'host' в phpMyAdmin, оно пытается установить соединение через сокет ($cfg['Servers'][$i]['host'] = 'localhost';
по умолчанию, если вы явно не установили его в config.inc.php
). В Mac OS по какой-то причине PHP и MySQL не договариваются о расположении файла сокета по умолчанию.
Существует несколько простых решений, но для двух из них вы должны сначала определить фактический путь к сокету. Самый простой способ - попасть в командную строку MySQL. Откройте «Терминал» в папке «Приложения» -> «Утилиты», затем введите mysql -u root -p
и при появлении запроса введите свой корневой пароль MySQL (по умолчанию обычно он не указан). В командной строке MySQL введите status;
, и вы увидите список нескольких параметров, связанных с подключением. Ищите один как
сокет UNIX: /var/run/mysqld/mysqld.sock
Это путь к сокету. Ваш почти наверняка будет отличаться от этого.
Теперь о том, как это исправить:
- Изменить сокет по умолчанию в PHP. Откройте файл конфигурации PHP (вероятно, php.ini) в вашем любимом текстовом редакторе и добавьте правильный путь к строке
mysqli.default_socket =
. Это изменение повлияет на любой скрипт PHP, использующий путь к системному сокету по умолчанию.
- Менять сокет только для phpMyAdmin. Откройте файл конфигурации phpMyAdmin (config.inc.php) в вашем любимом текстовом редакторе. Отредактируйте или добавьте строку
$cfg['Servers'][$i]['socket'] = '';
с правильным путем.
- Переключить тип подключения к сети TCP. Снова отредактируйте файл конфигурации phpMyAdmin (config.inc.php) и отредактируйте или добавьте строку
$cfg['Servers'][$i]['host'] = '127.0.0.1';
. Это скажет phpMyAdmin использовать метод сетевого соединения TCP вместо сокетов. Обратите внимание, что ваши экземпляры MySQL могут не прослушивать входящие TCP-соединения по умолчанию и что ваш пользователь MySQL root @ localhost отличается от root@127.0.0.1 или root@%.
Вам нужно только одно из этих решений, а не все три.