У вас по факту сокет-файл находится в /run/mysqld/mysqld.sock, а вы присоедняетесь к /var/run/mysqld/mysqld.sock
Плюс читаем
документацию, а там сокет идет последним параметром.
Часть первая, удостоверьтесь, что сокет файл в нужном месте. Подключитесь к MySQL и посмотрите, что у вас тут:
show variables like 'socket'
У меня там
/opt/local/var/run/mariadb-10.0/mysqld.sock.
Значит мне нужно исправить php.ini
; я ленивый, поэтому настраиваю все варианты подключений
[MySQL]
mysql.default_socket = /opt/local/var/run/mariadb-10.0/mysqld.sock
[MySQLi]
mysqli.default_socket = /opt/local/var/run/mariadb-10.0/mysqld.sock
[Pdo_mysql]
pdo_mysql.default_socket=/opt/local/var/run/mariadb-10.0/mysqld.sock
После этого ваши скрипты должны подключаться через сокет.
// здесь должно быть соединение через сокет
$mysqli = new mysqli("localhost", "root", "password");
// можно принудительно указать путь к сокету
// я очень не рекомендую так делать,
// т.к. возможны проблемы с развертыванием ваших скриптов в других окружениях
$mysqli = new mysqli("localhost", "root", "password", "db", 0,
"/opt/local/var/run/mariadb-10.0/mysqld.sock");