Ошибка php / kohana при запуске установочной части - PullRequest
0 голосов
/ 17 марта 2019

Задача

Я установил бобовые книги и я на последнем шаге, но когда я захожу в localhost / install, я получаю следующую ошибку:

Произошла неустранимая ошибка: Session_Exception [1]: Ошибка чтения сеанса data.exception «ErrorException» с сообщением «mysql_select_db () ожидает, что параметр 2 будет ресурсом, учитывая логическое значение» в /var/www/html/modules/database/classes/kohana/database/mysql.php:105 Трассировка стека: # 0 [внутренняя функция]: Kohana_Core :: error_handler (2, 'mysql_select_db ...', '/ var / www / html / m ...', 105, Array) # 1 /var/www/html/modules/database/classes/kohana/database/mysql.php(105): mysql_select_db ('kohana', false) # 2 /var/www/html/application/classes/database/mysql.php(75): Kohana_Database_MySQL -> _ select_db ('kohana') # 3 /var/www/html/modules/database/classes/kohana/database/mysql.php(430): Database_MySQL-> connect () # 4 /var/www/html/modules/database/classes/kohana/database.php(478): Kohana_Database_MySQL-> escape ('5c8da306617b91 -...') # 5 [внутренний функция]: Kohana_Database-> quote ('5c8da306617b91 -...') # 6 /var/www/html/modules/database/classes/kohana/database/query.php(190): array_map (Array, Array) # 7 /var/www/html/modules/database/classes/kohana/database/query/builder/select.php(413): Kohana_Database_Query-> compile (Object (Database_MySQL)) # 8 /var/www/html/modules/database/classes/kohana/database/query.php(228): Kohana_Database_Query_Builder_Select-> компиляции (Object (Database_MySQL))

9 /var/www/html/modules/database/classes/kohana/session/database.php(131):

Kohana_Database_Query-> execute (Object (Database_MySQL)) # 10 /var/www/html/modules/database/classes/kohana/session/database.php(111): Kohana_Session_Database -> _ регенерация () # 11 /var/www/html/system/classes/kohana/session.php(300): Kohana_Session_Database -> _ read (NULL) # 12 /var/www/html/system/classes/kohana/session.php(125): Kohana_Session-> read (NULL) # 13 /var/www/html/modules/database/classes/kohana/session/database.php(74): Kohana_Session -> __ construct (Array, NULL) # 14 /var/www/html/system/classes/kohana/session.php(54): Kohana_Session_Database -> __ construct (Array, NULL) # 15 /var/www/html/application/classes/controller/view.php(49): Kohana_Session :: instance () # 16 /var/www/html/application/classes/controller/exception.php(27): Controller_View-> before () # 17 [внутренняя функция]: Controller_Exception-> before () # 18 /var/www/html/system/classes/kohana/request/client/internal.php(103): ReflectionMethod-> invoke (Object (Controller_Exception)) # 19 /var/www/html/system/classes/kohana/request/client.php(64): Kohana_Request_Client_Internal-> execute_request (Объект (Запрос)) # 20 /var/www/html/system/classes/kohana/request.php(1154): Kohana_Request_Client-> execute (Object (Request)) # 21 /var/www/html/application/classes/kohana/exception.php(25): Kohana_Request-> execute () # 22 [внутренняя функция]: Kohana_Exception :: handler (Object (Session_Exception)) # 23 {main} ~ SYSPATH / classes / kohana / session.php [325]

Как мне решить эту проблему?

System

php5

Ubuntu 14.04

Mysql 5,5

apache2

1 Ответ

0 голосов
/ 19 марта 2019

У вас проблемы с подключением к базе данных, потому что ресурс не возвращается, просто ошибка.

У вас есть несколько вариантов:

  • повторная проверка данных соединения в конфиге
  • переключение на драйвер базы данных PDO
  • быстрый взлом в библиотеке:

в MODPATH\database\classes\Kohana\Database\MySQL.php метод connect() до: $this->_select_db($database); вы добавляете:

if(!$this->_connection)
  throw new Database_Exception(':error',
            array(':error' => mysql_error()),
            mysql_errno());

ПРИМЕЧАНИЕ. Проблема с PDO, который не поддерживает автоматическое обнаружение модели. Но для отладки соединения достаточно.

Хм, это можно сделать в соответствии с искусством, без изменения модулей:

создать файл: APPPATH\classes\Database\MySQL.php

class Database_MySQL extends Kohana_Database_MySQL{
  protected function _select_db($database) {
    if(!$this->_connection)
      throw new Database_Exception(':error',
            array(':error' => mysql_error()),
            mysql_errno());
    return parent::_select_db($database);
  }
}
...