Либо MySQL не работает, либо путь к сокету правильный (как вы пытались разобраться). MySQL использует два разных типа соединения для прослушивания: сеть TCP / IP и сокеты. Как примечание, система привилегий MySQL различает два, поэтому пользователь со значением хоста %
не будет разрешать соединения через сокет, а хост localhost
не будет соответствовать соединению TCP / IP, даже тот, который приходит с того же локального компьютера (127.0.0.1 до MySQL).
Если ваша учетная запись пользователя существует с обоими полями хоста, вы можете изменить конфигурацию phpMyAdmin для подключения через соединение TCP / IP. Отредактируйте файл конфигурации config.inc.php
и измените директиву $cfg['Servers'][$i]['host'] = 'localhost';
на $cfg['Servers'][$i]['host'] = '127.0.0.1';
Однако, возможно, лучшим решением будет исправить путь к сокету. Я не совсем понимаю, что не так с командой mysqladmin | grep mysql.sock
, которая должна была дать вам путь к сокету. Все программы используют один и тот же путь к сокету для подключения к MySQL, поэтому, хотя этот путь используется mysqladmin и другими инструментами командной строки, это также путь, который вы будете использовать для phpMyAdmin. Другой способ получить это - подключиться через клиент командной строки и запустить команду STATUS;
. Будет следующая строка: UNIX socket: /var/run/mysqld/mysqld.sock
.
В любом случае, когда у вас есть путь, вы можете добавить его непосредственно к config.inc.php
, добавив (или отредактировав, если он уже существует) директиву сокета : $cfg['Servers'][$i]['socket'] = '/var/run/mysqld/mysqld.sock';
.
Немного лучше было бы отредактировать вашу конфигурацию PHP и установить ее глобально, чтобы все программы PHP знали правильный путь. В вашем php.ini
правильная директива должна быть mysqli.default_socket
. PHP принимает «встроенные MySQL значения по умолчанию», если вы не переопределите его здесь, а phpMyAdmin принимает значение PHP, если вы не переопределите его в config.in c. php. Таким образом, любое из этих решений решит проблему для вас. Возможно, проще всего установить его только для phpMyAdmin, но если вы занимаетесь другими PHP разработками, это может упростить его глобальное определение в php .ini.