1

Тема: Соединение с БД через unix-сокеты

Добрый день!

Версия S2 1.0b5. Не удаётся установить S2 при подключении к БД (MySQL) через unix-сокет, например:

:/var/run/mysqld/mysqld.sock

или

localhost:/var/run/mysqld/mysqld.sock

в трёх случаях:

  • MySQL Improved;

  • MySQL Improved + InnoDB;

  • MySQL Standard + InnoDB.

При указании MySQL Standard установка завершается удачно. С учётом того, что mysql_* deprecated, было бы хорошо, чтобы можно было производить установку движка при доступных только mysqli_-функциях.

Также не работает сайт после ручной замены в config.php $db_type значения 'mysql''mysqli'. Получается ошибка вида

Unable to connect to MySQL and select database. MySQL reported:

The error occurred on line 50 in /var/www/dev/_include/dblayer/mysqli.php

22.12.2015 03:54:11. Текст был изменен (Alsow).

2

Re: Соединение с БД через unix-сокеты

При использовании расширения mysqli достаточно указать хост "localhost", чтобы соединение пошло через юникс-сокет. А если указать 127.0.0.1, то соединение установится через TCP. Об этом сказано в документации PHP.

3

Re: Соединение с БД через unix-сокеты

Роман пишет:

При использовании расширения mysqli достаточно указать хост "localhost", чтобы соединение пошло через юникс-сокет. А если указать 127.0.0.1, то соединение установится через TCP. Об этом сказано в документации PHP.

Спасибо! Так заработало, движок установился на MySQL Improved. Но в случае MySQL Improved + InnoDB установить не удалось. Установщик считал, что база данных не поддерживает InnoDB. Но в то же время после установки, конвертации таблиц форума в InnoDB (не знаю, насколько это предусмотрено, но мне интересно было протестировать) и указании в конфиге $db_type = 'mysqli_innodb', движок без проблем работает.

4

Re: Соединение с БД через unix-сокеты

Вы правы, движок использует устаревший способ определения InnoDB через переменную have_innodb, которой нет в новых версиях MySQL. Я подумаю, что с этим делать.