Ошибка Codeigniter «Невозможно подключиться к серверу базы данных с использованием предоставленных настроек» - PullRequest
5 голосов
/ 03 марта 2012

Когда я пытаюсь загрузить этот проект на свой домен, я сталкиваюсь с ошибкой «Не удается подключиться к серверу базы данных с использованием предоставленных настроек»

Я проверил мои config.php и * 1005Файл * database.php и вся информация верны:

 $db['default']['hostname'] = "etc.com";
 $db['default']['username'] = "etc"; 
 $db['default']['password'] = "etc@etc";
 $db['default']['database'] = "visiting_link";
 $db['default']['dbdriver'] = "mysql";
 $db['default']['dbprefix'] = "";
 $db['default']['pconnect'] = TRUE;
 $db['default']['db_debug'] = TRUE;
 $db['default']['cache_on'] = FALSE;
 $db['default']['cachedir'] = "";
 $db['default']['char_set'] = "utf8";
 $db['default']['dbcollat'] = "utf8_general_ci"; 

Есть ли какое-либо решение этой проблемы?Пожалуйста, обратитесь любой вспомогательный материал.Я использую файл Zilla.Спасибо!

Ответы [ 8 ]

14 голосов
/ 13 сентября 2012

Установка "db_debug" в false решила мою проблему.

Я использую Snow Leopard.

EDIT: db_debug просто запутал мое направление.Решением в моем случае был просто ссылочный путь mysql.sock, решенный по этому вопросу: Предупреждение: mysql_connect (): [2002] Нет такого файла или каталога (при попытке соединения через unix: /// tmp / mysql.sock) в

OS X использует /tmp/mysql.sock, и по умолчанию php.ini ссылается на /var/mysql/mysql.sock.Создание символической ссылки решает проблему:

sudo mkdir -p /var/mysql/ && cd /var/mysql/
sudo ln -s /tmp/mysql.sock ./mysql.sock
3 голосов
/ 03 марта 2012

Попробуйте установить для 'dbdriver' значение mysqli *

$db['default']['dbdriver'] = "mysqli";

Это улучшенное расширение MySQL (http://php.net/manual/en/book.mysqli.php), и ваш сервер может использовать его вместо стандартного расширения MySQL).

Я видел, как это происходило несколько раз, когда все остальные настройки верны, так как соединение не будет установлено, если выбран неправильный драйвер.

2 голосов
/ 03 марта 2012

Если настройки базы данных верны, то где-то что-то не так:

  • возможно, база данных не принимает соединения из любого места; в этом случае вам нужно разрешить соединения с вашего 'username' @ 'server IP'

  • возможно, PHP или сам сервер не разрешают соединение из-за настройки php.ini, брандмауэра или чего-то еще

Возвращаясь к настройкам CI DB, вы должны убедиться, что они верны. Вы уверены, что «имя хоста» правильно?

1 голос
/ 20 марта 2016

если вы используете codeigniter 3, пожалуйста, используйте последнюю версию php.Как только я получаю эти ошибки, но затем я обновляю свой php, он работает после успешной настройки codeigniter на моем проекте.

0 голосов
/ 06 января 2018

Я получаю эту ошибку

    <div id="container">
        <h1>A Database Error Occurred</h1>
        <p>Unable to connect to your database server using the provided settings.</p>
        <p>Filename: C:/xampp/htdocs/WORK/Vishal/UI-Demo/system/database/DB_driver.php</p>
        <p>Line Number: 436</p>
    </div>

Я решил эту ошибку, изменив параметр отладки на FALSE в database.php

'db_debug' => (ENVIRONMENT! =='production'),

TO

'db_debug' => FALSE,

Изменить это

$db['default'] = array(
'dsn'   => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE

);

К

$db['default'] = array(
'dsn'   => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'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

);

0 голосов
/ 28 августа 2013

Это решило мою проблему при развертывании CMS codeigniter на сервере, хотя в localhost он работал нормально с атрибутом TRUE.измените эту строку в database.php так, чтобы она выглядела следующим образом:

$db['default']['pconnect'] = FALSE;

Также проверьте, соответствует ли эта строка сопоставлению базы данных вашего сервера (также для всех таблиц):

$db['default']['dbcollat'] = "utf8_general_ci";
0 голосов
/ 17 июля 2012

Если вы столкнулись с этой проблемой в среде общего хостинга.Тогда я думаю, что вы должны предоставить учетные данные базы данных, такие же, как cpanel / hosting.

0 голосов
/ 03 марта 2012

Попробуйте $ db ['default'] ['hostname'] = "localhost";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...