Проверьте следующие шаги, это будет полезно:
Когда вы используете просто "localhost", клиентская библиотека MySQL пытается использовать сокет домена Unix для соединения вместо соединения TCP / IP.Ошибка говорит вам, что сокет, называемый MySQL, не может использоваться для установления соединения, возможно, потому что он не существует (ошибка номер 2).
Из документации MySQL:
Вкл.Unix, программы MySQL обрабатывают имя хоста localhost особым образом, что, вероятно, отличается от того, что вы ожидаете по сравнению с другими сетевыми программами.Для подключений к localhost программы MySQL пытаются подключиться к локальному серверу с помощью файла сокета Unix.Это происходит, даже если указана опция --port или -P для указания номера порта.Чтобы убедиться, что клиент устанавливает соединение TCP / IP с локальным сервером, используйте --host или -h, чтобы указать значение имени хоста 127.0.0.1, или IP-адрес или имя локального сервера.Вы также можете указать протокол соединения явно, даже для localhost, используя опцию --protocol = TCP.
Существует несколько способов решения этой проблемы.
Вы можете просто использовать TCP/ IP вместо сокета Unix.
Вы можете сделать это, используя 127.0.0.1 вместо localhost при подключении.
Однако сокет Unix может быть быстрее и безопаснее в использовании.Вы можете изменить сокет в php.ini: откройте файл конфигурации MySQL my.cnf, чтобы найти, где MySQL создает сокет, и установите PHP mysqli.default_socket в этот путь.В моей системе это /var/run/mysqld/mysqld.sock.
Сконфигурируйте сокет прямо в скрипте PHP при открытии соединения.Например:
$ db = new MySQLi ('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock')