Powered by CodeIgniter
rxs

rxs

0
5 голосов
  ПрофильБлог (4)Комментарии (30)ЗакладкиПродукты 
Ставлю cogear на хостинг и на 3-м шаге — соединение с базой данных возникает проблема
Соединение с базой данных установить не удалось.
Проверьте параметры соединения и попробуйте еще раз.

Что может быть причиной: 1. Имя сервера баз данных — записываю как [имя сервера][:][порт] — такие настройки идут от хостинга.
Может быть неверный синтаксис или cogear чего-то не понимает.

2. База данных уже создана хостером ранее и имя базы данных задано изначально.
Вдруг чего-то требует еще cogear от базы данных.

Ошибок в логах нет.

На этом хостинге с такими же параметрами успешно установливались WordPress, Livestreet, Dolphin.

Интересно узнать варианты решения проблемы. Думаю на 1-й вариант пока, но без логов непонятно куда смотреть, тем более, что проблем у других движков нет.
08:08 ← 25 апреля 2011 Отправить в Твиттер rxsrxs  RSS comments 25

Комментарии (25) ↓

admin admin time 11:44 ← 25 апреля 2011 #
Добрый день. Там просто хост нужно указать, без порта.
Автор
rxs rxs time 11:56 ← 25 апреля 2011 #
Добрый день. Спасибо за ответ.
Я проверял вариант и без порта — кажется тоже не работал. Проверю вечером еще раз.

Если не указывается порт, то используется какой-то дефолтный или набор дефолтных портов.
Так?

А что если порт не является стандартным?
admin admin time 12:33 ← 25 апреля 2011 #
Тогда на этом этапе можно попробывать прописать DSN вручную в файле /gears/global/global.info.
Автор
rxs rxs time 14:14 ← 25 апреля 2011 #
Увидел в мануале по установке
cogear.ru/user_guide/introduction/install/ Укажие DSN для соединения с Базой Данных
database = «mysqli://root:password@localhost/database»

В файле global.info как и в global.info.default про базы данных есть только 1 строка

database = FALSE

В какую секцию файла нужна записывать строку из мануала?
В каком синтаксисе?
Нужен рабочий пример с указанным портом базы.
admin admin time 14:17 ← 25 апреля 2011 #
Просто вы на том пункте, где эта строка должна поменяться.
Рабочий пример вы уже указали.
Автор
rxs rxs time 15:04 ← 25 апреля 2011 #
Прописал вместо строки
database = FALSE

такую

database = «mysqli://user:password@database_host:port/database_name»

Результат
A PHP Error was encountered
Severity: Notice

Message: Undefined index: scheme

Filename: database/DB.php

Line Number: 65
admin admin time 15:22 ← 25 апреля 2011 #
В DSN не предусмотрен нестандартный порт
www.assembla.com/code/cogear/subversion/nodes/trunk/engine/codeigniter/database/DB.php?rev=1001 if (($dns = @parse_url($params)) === FALSE) { show_error('Invalid DB Connection String'); } $params = array( 'dbdriver' => $dns['scheme'], 'hostname' => (isset($dns['host'])) ? rawurldecode($dns['host']) : '', 'username' => (isset($dns['user'])) ? rawurldecode($dns['user']) : '', 'password' => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '', 'database' => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : '' ); Попробуйте строчку вставить:
'port' => (isset($dns['port'])) ? rawurldecode($dns['host']) : '',
Автор
rxs rxs time 15:37 ← 25 апреля 2011 #
Стандартный это 3306?
Автор
rxs rxs time 16:09 ← 25 апреля 2011 #
Т.е. установка cogear на хостинг с недефолтным портом сервера sql невозможна?
admin admin time 16:15 ← 25 апреля 2011 #
Смотрите внимательно. Первая версия работает на CodeIgniter, от которого мы отказались по вполне понятным причинам. В нем порт при задании через DSN не поддерживает (без рекомендованных ваше изменений — одна строчка).
Можно задать параметры массивом, тогда все должно сработать:
database[dbriver] = "mysql" database[hostname] = "host" database[port] = 3306 database[username] = "user" database[password] = "password" database[database] = "base"
Автор
rxs rxs time 18:15 ← 25 апреля 2011 #
Ошибка
A PHP Error was encountered
Severity: Warning

Message: syntax error, unexpected '=' in .../www/gears//global/global.info on line 45

Filename: libraries/Info.php

Line Number: 84
admin admin time 18:18 ← 25 апреля 2011 #
Да, напутал с синтаксисом.
[database] dbdriver = "mysql" hostname = "host" port = 3306 username = "user" database = "base"
Автор
rxs rxs time 18:33 ← 25 апреля 2011 #
Он не верит :)
Там еще был пароль пропущен, написал так

[database] dbdriver = «mysql» hostname = «host» port = 3306 username = «user» password = «psw» database = «base»

A PHP Error was encountered
Severity: Warning

Message: syntax error, unexpected '=' in .../www/gears//global/global.info on line 46

Filename: libraries/Info.php

Line Number: 84
pika4u pika4u time 14:04 ← 28 июня 2011 #
как установить эту систему на нестандартный порт mysql:3306?
admin admin time 14:13 ← 28 июня 2011 #
Прочитайте сообщения выше.
pika4u pika4u time 14:17 ← 28 июня 2011 #
[database]
dbdriver = «mysql»
hostname = «host»
port = 3306
username = «user»
password = «psw»
database = «base»

не робит((
{A PHP Error was encountered

Severity: 4096

Message: Object of class emptyClass could not be converted to string

Filename: libraries/Controller.php

Line Number: 101}
admin admin time 14:19 ← 28 июня 2011 #
Как насчет обратить внимание на все комментарии выше?
cogear.ru/ustanovka-cogear-na-khosting-616.html#comment-10771
pika4u pika4u time 14:29 ← 28 июня 2011 #
а где этот файл лежит database/DB.php папку database я не нашол (((
admin admin time 14:30 ← 28 июня 2011 #
/engine/codeigniter/database/DB.php
pika4u pika4u time 15:15 ← 28 июня 2011 #
ошибка осталась
A PHP Error was encountered

Severity: 4096

Message: Object of class emptyClass could not be converted to string

Filename: libraries/Controller.php

Line Number: 101
Автор
rxs rxs time 21:18 ← 28 июня 2011 #
Filename: libraries/Controller.php
У меня была ошибка другого рода, если вы заметили.
А значит мои решения Вам не подойдут.
По Вашей ошибке я посмотрел бы файл
libraries/Controller.php
и в нем строку
Line Number: 101
Что там так есть.
Ну и заодно проверил бы синтаксис тех файлов, которые изменялись вручную, вдруг где-то не хватает скобки.
У меня на 101 строке это
if(!strpos($this->site->database,'dbprefix')){ Ну и последнее. После разборок с cogear, который не
любит работать с нестандартным SQL и при отсутствии
поддержки сообщества
прихожу к выводу, что с
cogear нет смысла связываться. Чтобы снова не попадать
в ситуации без отсутствия обратной связи от
разработчика.
pika4u pika4u time 21:23 ← 28 июня 2011 #
я немного погулял по темам оказывается была ошибка тут{'port' => (isset($dns['port']))? rawurldecode($dns['host']): '',} и теперь у меня {A PHP Error was encountered

Severity: Notice

Message: Undefined index: scheme

Filename: database/DB.php

Line Number: 65}
Автор
rxs rxs time 21:26 ← 28 июня 2011 #
Message: Undefined index: scheme
Уже проще.
Вы вручную установили cogear и прописали параметры коннекта к БД и теперь надо сделать импорт базы SQL.
Посмотрите этот мой комментарий cogear.ru/nestandartnyjj-port-sql-servera-618.html#comment-10804
pika4u pika4u time 21:35 ← 28 июня 2011 #
базу я сразу импортнул и указал так подключение так database = «mysqli://root:password@localhost:port/database»
Автор
rxs rxs time 21:37 ← 28 июня 2011 #
У меня была проблема именно в отсутствии базы. Попробуйте еще раз импорт сделать.
Или ждать Admin'a