Получение ошибки mysqli :: real_connect (): (HY000 / 2002): нет такого файла или каталога, когда я пытаюсь получить доступ к моему проекту на реальном сервере

я загрузил мой сайт на сервер, а затем я попытался получить доступ, но воспламенитель кода возвращает мне эту ошибку, что я не нахожу ответа, почему это происходит?

моя база данных конфигурации задана так:

$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'netservice', 'password' => '*********', 'database' => 'valedastrutas', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => FALSE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE, ); 

Драйвер подключения MySQL не получает никакого значимого сервера в локальном каталоге localhost. Поэтому используйте,

 'hostname' => '127.0.0.1' 

скорее, чем

 'hostname' => 'localhost' 

Аналогичная проблема возникает со мной, с AWS RDS MySQL. Посмотрел различные источники, но по этой теме почти весь недостаток ответа. Хотя этот ответ помог мне, подстройте его, чтобы обновить имена хостов на сервере. Войдите в свой SSH и выполните следующие действия:

 cd /etc/ sudo nano hosts 

Теперь, добавляя сюда ваши имена хостов: Например:

 127.0.0.1 localhost 127.0.0.1 subdomain.domain.com [if cname redirected to endpoints] 127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints] 

и теперь, конфигурируя config/database.php следующим образом:

 $active_group = 'default'; $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => '35.150.12.345', 'username' => 'user-name-here', 'password' => 'password-here', 'database' => 'database-name-here', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); 

где 35.150.12.345 – ваш IPv4 Public IP , расположенный на ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP ('35 .150.12.345 ').

Примечание. Обратите внимание, что только IPV4 будет работать с параметром «hostname». hostname, cname, домены выведут ошибку подключения к базе данных.

У меня была такая же проблема. Я использовал хост, определенный в файле / etc / hosts:

127.0.0.1 test.localhost

и соединение с URL-адресом http: //test.localhost/index.php/news/view, как в учебнике. Я получил эту ошибку и только исправил ее, изменив строку:

'hostname' => 'localhost',

чтобы:

'hostname' => 'test.localhost',

Я предлагаю вам включить и посмотреть подробный php_errors.log

Убедитесь, что каталог, указанный с использованием session.save_path в php.ini, существует и доступен для записи. Вы можете использовать phpinfo (), чтобы показать фактический путь session.save_path.

Создание отсутствующего каталога «phptmp», указанного как session.save_path, исправило эту проблему для меня.