Задать вопрос
@TheRevan

При переносе не хочет подключаться к БД, в чем может быть проблема?

переношу opencart на новый хост и не хочет подключаться к БД, вот что пишет:
Warning: mysqli::__construct(): (HY000/2002): No such file or directory in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 7

Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 10

Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 10

Fatal error: Uncaught Exception: Error: <br />Error No: in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php:10 Stack trace: #0 /home/kirby/kirby-center.ru/docs/system/library/db.php(9): DB\MySQLi->__construct('localhost', 'ЗДЕСЬ ЮСЕР', 'ЗДЕСЬ ПАРОЛЬ', 'ЗДЕСЬ БД', NULL) #1 /home/kirby/kirby-center.ru/docs/system/config/catalog.php(27): DB->__construct('mysqli', 'localhost', 'ЗДЕСЬ ЮСЕР', 'ЗДЕСЬ ПАРОЛЬ', 'ЗДЕСЬ БД') #2 /home/kirby/kirby-center.ru/docs/system/storage/modification/system/library/config.php(23): require('/home/kirby/kir...') #3 /home/kirby/kirby-center.ru/docs/system/framework.php(8): Config->load('catalog') #4 /home/kirby/kirby-center.ru/docs/system/startup.php(105): require_once('/home/kirby/kir...') #5 /home/kirby/kirby-center.ru/docs/index.php(19): start('catalog') #6 {main} thrown in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 10


вот что в конфигах:
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'ЗДЕСЬ ИМЯ');
define('DB_PASSWORD', 'ЗДЕСЬ ПАРОЛЬ');
define('DB_DATABASE', 'ЗДЕСЬ ДБ');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');


место всяких ЗДЕСЬ естественно реальные данные
  • Вопрос задан
  • 5325 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
переношу opencart на новый хост и не хочет подключаться к БД, вот что пишет:

В первую очередь, обратите внимание вот на это:
No such file or directory in /home/kirby/kirby-center.ru/docs/system/library/db/mysqli.php on line 7
Почему у Вас нет этого файла? Куда он делся? Думаю, стоит проверить.

Второй важный момент - Вы сверяли минимальную версию PHP для Вашей версии OpenCart и той, которая стоит на каком-то ("новом" или любом другом, конечном) хостинге?
Ответ написан
Комментировать
Uwe_Boll
@Uwe_Boll
Я Злой и Страшный Уве Болл в Разработке знаю Толк
что в этой переменной _ENV["SCRIPT_FILENAME"] ?
и заменить на новые значения этих констант
// HTTP
define('HTTP_SERVER', 'http://oc-store.vl/');

// HTTPS
define('HTTPS_SERVER', 'http://oc-store.vl/');

// DIR
define('DIR_APPLICATION', 'D:/OpenServer/domains/oc-store.vl/catalog/');
define('DIR_SYSTEM', 'D:/OpenServer/domains/oc-store.vl/system/');
define('DIR_IMAGE', 'D:/OpenServer/domains/oc-store.vl/image/');
define('DIR_LANGUAGE', 'D:/OpenServer/domains/oc-store.vl/catalog/language/');
define('DIR_TEMPLATE', 'D:/OpenServer/domains/oc-store.vl/catalog/view/theme/');
define('DIR_CONFIG', 'D:/OpenServer/domains/oc-store.vl/system/config/');
define('DIR_CACHE', 'D:/OpenServer/domains/oc-store.vl/system/storage/cache/');
define('DIR_DOWNLOAD', 'D:/OpenServer/domains/oc-store.vl/system/storage/download/');
define('DIR_LOGS', 'D:/OpenServer/domains/oc-store.vl/system/storage/logs/');
define('DIR_MODIFICATION', 'D:/OpenServer/domains/oc-store.vl/system/storage/modification/');
define('DIR_UPLOAD', 'D:/OpenServer/domains/oc-store.vl/system/storage/upload/');

и тоже самое в админке
Ответ написан
Комментировать
@bankir1980
Хотя вопрос и задан более 2-х лет назад, отвечу для других, ищущих информацию, т.к. сам столкнулся с данной проблемой.
1. Смотрим DB_HOSTNAME. Если MySQL сервер физически располагается на том же сервере, что и PHP, то тут прописано localhost, если на другом - прописываем IP другого сервера. После этого обычно ошибка исчезает.
2. Когда настройка localhost, то mysqli пытается работать с mysql через сокет, а не TCP/IP. В таком случае смотрим, что выдает phpinfo() для сервера в части настроек mysqli и смотрим какой сокет прописан в настройках. Сверяем данную настройку с настройкой в my.cfg mysql сервера. Сокет должен быть один и тот же и в mysql и в php.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы