Я перехожу с mysql на mysqli. В настоящее время на моем сервере одновременно работают pdo, mysql и mysqli. Также PHP 5.6.34 работает в докере. Версия MySQL 10.2.16-MariaDB-log MariaDB Server, который работает на хост-компьютере. ОС CentOS Linux 7.
Скрипт для подключения к БД:
if($mysqli){//never works
$res = $GLOBALS["___mysqli_ston"] = mysqli_connect("localhost", "user", "pass" , NULL, 0, 'var/sockets/mysql.sock');
}
else{//always works
$res = mysql_connect(':/var/sockets/mysql.sock', "user", "pass" );
}
if (!$res){
die("err");
}
Подключение к БД с помощью MySQL работает нормально. Но каждый раз, когда я пытаюсь подключиться к БД с помощью mysqli, получаю следующую ошибку:
(!) Предупреждение: mysqli_connect (): (HY000 / 2002): Нет такого файла или каталога в /var/www/html/Lib_SQL.php в строке 20
Строка 20:
$ res = $ GLOBALS ["___ mysqli_ston"] = mysqli_connect ("localhost", "user", "pass", NULL, 0, 'var / sockets / mysql.sock');
Я уже установил сокет по умолчанию для файла php.ini:
mysql.default_socket => /var/mysql/mysql.sock
Я также заметил, что принудительное соединение TCP / IP с БД не вызывает этого предупреждения, например:
$res = $GLOBALS["___mysqli_ston"] = mysqli_connect("hostname.com", "user", "pass" , NULL, 0, 'var/sockets/mysql.sock');
Так как же использовать mysqli_connect для подключения к моей БД через локальный сокет unix? Есть намеки?