CodeIgniter: Невозможно подключиться к серверу базы данных, используя предоставленные настройки Сообщение об ошибке - PullRequest
48 голосов
/ 31 августа 2011

Я прекрасно использовал CI, используя драйвер MySQL. Я хочу использовать драйвер MySQL вместо этого, но как только я изменяю его (просто добавьте «i» в конце MySQL и добавьте номер порта), я получаю следующее сообщение об ошибке

Произошла ошибка базы данных

Невозможно подключиться к серверу базы данных с использованием предоставленных настроек.

Имя файла: core / Loader.php

Номер строки: 232

мои настройки выглядят так:

$db['default']['hostname'] = $hostname;
$db['default']['username'] = $username;
$db['default']['password'] = $password;
$db['default']['database'] = $database;
$db['default']['dbdriver'] = 'mysqli';
$db['default']['port']     = "3306";  
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE; 

where
$hostname = 'localhost';
$username = 'myusernamegoeshere';
$password = 'mypasswordgoeshere';
$database = 'mydatabasenamegoeshere'; 

Я использую:

CI 2.0.2 php 5.3.4 Apache / 2.2.17 (Unix) mysql 5.5.13 mysql.default_port 3306

Я что-то не так делаю?

Спасибо,

Ответы [ 12 ]

103 голосов
/ 10 января 2012

Я думаю, что-то не так с настройкой PHP.
Сначала отладьте соединение с базой данных, используя этот скрипт в конце . / Config / database.php :

<code>...
  ...
  ...
  echo '<pre>';
  print_r($db['default']);
  echo '
'; echo 'Подключение к базе данных:'. $ db ['default'] ['database']; $ ДВГ = mysql_connect ( $ Дб [ 'по умолчанию'] [ 'имя хоста'], $ Дб [ 'по умолчанию'] [ 'имя пользователя'], $ Дб [ 'по умолчанию'] [ 'пароль']) or die ('Невозможно подключиться к базе данных, потому что:'. mysql_error ()); mysql_select_db ($ db ['default'] ['database']); echo '
Подключено OK:'; die ('file:' .__ FILE__. 'Line:' .__ LINE__);

Тогда посмотрите, в чем проблема.

49 голосов
/ 22 марта 2013

Сегодня я столкнулся с такой проблемой на живом сервере и решил проблему, изменив эту строку

$db['default']['db_debug'] = TRUE;

до

$db['default']['db_debug'] = FALSE;
29 голосов
/ 19 февраля 2013

Я решил проблему, изменив

$db['default']['pconnect'] = TRUE; на $db['default']['pconnect'] = FALSE;

в / application / config / database.php

29 голосов
/ 15 июня 2012

Для меня проблема была в файле php.ini. Свойство mysql.default_socket указывало на файл в несуществующем каталоге. Свойство указывало на /var/mysql/mysql.sock, но в OSX файл находился в /tmp/mysql.sock.

Как только я обновил запись в php.ini и перезапустил веб-сервер, проблема была решена.

17 голосов
/ 16 июля 2013

SET $db['default']['db_debug'] ЛОЖЬ вместо ИСТИНА.

$db['default']['db_debug'] = FALSE;
3 голосов
/ 31 августа 2011

Если это все, что вы изменили, возможно, драйвер mysqli не установлен или не включен в вашей конфигурации PHP.

Проверьте его наличие с помощью phpinfo () или в файле php.ini (расширение = php_mysqli ....).

2 голосов
/ 17 января 2019

Расширение @Valeh Hajiyev отличный и четкий ответ для mysqli тестов водителя:

Отладка соединения с базой данных с помощью этого скрипта в конце ./config/database.php:

<code>/* Your db config here */ 
$db['default'] = array(
  // ...
  'dbdriver'     => 'mysqli',
  // ...
);

/* Connection test: */

echo '<pre>';
print_r($db['default']);
echo '
'; echo 'Подключение к базе данных:'. $ db ['default'] ['database']; $ mysqli_connection = new MySQLi ($ db ['default'] ['hostname'], $ Дб [ 'по умолчанию'] [ 'имя пользователя'], $ Дб [ 'по умолчанию'] [ 'пароль'], $ Дб [ 'по умолчанию'] [ 'база данных']); if ($ mysqli_connection-> connect_error) { echo "Не подключен, ошибка:". $ Mysqli_connection-> connect_error; } еще { эхо "Подключено."; } die ('file:' .__ FILE__. 'Line:' .__ LINE__);
2 голосов
/ 29 ноября 2015

(CI 3) Для меня то, что сработало, менялось:

'hostname' => 'localhost' to 'hostname' => '127.0.0.1'
1 голос
/ 23 февраля 2012

Проблема решена!

Сначала я настроил весь свой веб-сайт в XAMMP, а затем мне пришлось перенести его в LAMP в установке SUSE LAMP, где я получил эту ошибку.1004 * Проблема в том, что эти параметры в файле database.php не должны быть инициализированы.Просто оставьте имя пользователя и пароль пустыми.Вот и все.

(Мое первое и неудачное предположение - из-за старой версии mysql, поскольку встроенные установки поставляются с более старыми версиями.

0 голосов
/ 14 июня 2014

Изменить $db['default']['dbdriver'] = 'mysql' на $db['default']['dbdriver'] = 'mysqli'

...