parserALT
Страницы форума: ← Назад | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 600 | Дальше →

И снова libmysqlclient.so, мать его за ногу!

#1vladibarinov
31.03.11 10:18
www.parser.ru → | ответить → | в избранное →

И снова libmysqlclient.so, мать его за ногу!

Знаю, тема поднималась много раз уже… однако нужна помощь.

1) Дано MacOS X 10.6 x86, 64-bit с MAMP; Parser 3.4.1;

2) В библиотеке lib лежат: libparser3mysql.so и скаченный libmysqlclient.18.dylib (скачал с mysql.com/downloads/mysql). Пути к файлам в конфиг файле указаны верно. Тестовая страница их видит. До этого пробовал разные libmysqlclient.so файлы. Та же беда.

3) Логин, пароль, хост, протокол, имя БД указано верно. Проверил 5 раз.

Тем не менее ошибка при подключении БД:
На тестовой странице: Can't connect to SQL server. Probably wrong username/password combination or incorrect connection string.

Десять раз перечитал → «kb: libmysqlclient.so»

В чем ошибка? За что меня наказывает Бог? На второй вопрос можно не отвечать :-/
#2Sumo
→ vladibarinov [#1] | 31.03.11 10:24
www.parser.ru → | ответить → | в избранное →

Connection-string покажите

#3vladibarinov
→ Sumo [#2] | 31.03.11 18:04
www.parser.ru → | ответить → | в избранное →
$SQL.connect-string[mysql://root:root@localhost:8889/db?charset=cp1251]
#4Sumo
→ vladibarinov [#3] | 31.03.11 18:20 / 18:21
www.parser.ru → | ответить → | в избранное →

Теперь давайте подробно...

... что и куда кладете, что прописано в конфигах про библиотеки, проверьте битность Парсера, libparser3mysql, libmysqlclient. Кроме того интересно какой командой проверяли работоспособность базы из консоли.
#5MoKo
→ vladibarinov [#3] | 31.03.11 18:24
www.parser.ru → | ответить → | в избранное →

8889

Такой порт - это специально? Обычно у mysql порт 3306, его можно и не указывать.
#6vladibarinov
→ MoKo [#5] | 31.03.11 18:32
www.parser.ru → | ответить → | в избранное →
Это не я, это MAMP назначил. Пробовал его и не указывать. Один результат.
#7Ivan Sergeev
→ vladibarinov [#1] | 31.03.11 19:59
www.parser.ru → | ответить → | в избранное →

На похожей конфигурации использую libmysqlclient.16.dylib

Правда не думаю, что дело именно в нем.
#8Ivan Sergeev
→ vladibarinov [#3] | 31.03.11 20:02
www.parser.ru → | ответить → | в избранное →

charset=cp1251 — вот за что Он наказывает ;-)

#9Ivan Sergeev
→ Ivan Sergeev [#7] | 31.03.11 20:13
www.parser.ru → | ответить → | в избранное →

Все же уточни про libmysqlclient.18.dylib Потому как под Mac (osx10.5, x86, 64bit) такой версии нет.

#10
→ vladibarinov [#6] | 31.03.11 23:05
www.parser.ru → | ответить → | в избранное →

А база данных называется db?

Или забыли поменять? sumo в общем правильный вопрос задал:

"Кроме того интересно какой командой проверяли работоспособность базы из консоли."
#11vladibarinov
→ Ivan Sergeev [#9] | 01.04.11 08:08
www.parser.ru → | ответить → | в избранное →

Пробовал и с libmysql.16.0.0.dylib не работает, тем не менее оставил его…

К слову, файл из скаченного с mysql.com архива нужно ведь просто скопировать в свою директорию? Или там какую-нибудь хитрожопую инсталляцию ему нужно делать?
#12vladibarinov
01.04.11 08:09
www.parser.ru → | ответить → | в избранное →

База данных называется db

На всякий случай создал другую. Same shit.
#13vladibarinov
→ Ivan Sergeev [#8] | 01.04.11 08:15
www.parser.ru → | ответить → | в избранное →

А как искупить свой грех?

В Библии (FAQ) написано:
++++++++++++++++
Допустим, данные в вашей базе хранятся в кодировке UTF-8, а сайт работает в кодировке windows-1251, в этом случае нужно использовать следующую строку подключения:
mysql://user:password@host/database?charset=cp1251
++++++++++++++++
У меня же:
$response:charset: WINDOWS-1251
$request:charset: WINDOWS-1251
А БД в utf8.

Может исповедь поможет? :)
#14vladibarinov
→ Sumo [#4] | 01.04.11 08:42
www.parser.ru → | ответить → | в избранное →

Подробно

1) Битность — check! (64 бит Парсер; libparser3mysql; libmysqlclient)

2) Библиотека — check!
++++++++
$confdir[^file:dirname[$filespec]]
$charsetsdir[$confdir/charsets]
$sqldriversdir[$confdir/lib]
...
mysql $sqldriversdir/libparser3mysql.so $sqldriversdir/libmysql.16.0.0.dylib
++++++++
И вот так:
$SQL.connect-string[mysql://root:root@localhost:8889/parser?charset=cp1251]

3) БД — check!
Взял и закинул обычный test.php в корень. Запустил. Все работает: создал 10 таблиц в базе parser.
++++++++
<?
Error_Reporting(1+2+4);
define("DBName","parser");
define("HostName","localhost");
define("UserName","root");
define("Password","root");
if(!mysql_connect(HostName,UserName,Password))
{ echo "Не могу соединиться с базой ".DBName."!<br>"; exit; }
@mysql(DBName,"create table test(id int,a text)");
// Вставляем в таблицу 10 записей
for($i=0; $i<10; $i++)
{ $id=time();
mysql(DBName,"insert into test(id,a) values($id,'Строка $i!')");
}
?>

Вы знаете, как я себя уже ненавижу? :-/
#15Ivan Sergeev
→ vladibarinov [#11] | 01.04.11 12:05
www.parser.ru → | ответить → | в избранное →

С виду все правильно, но есть особенность

Да, так должно работать
$SQL[
$.drivers[^table::create{protocol	driver	client
mysql	$sqldriversdir/libparser3mysql.so	$sqldriversdir/libmysqlclient.16.dylib
}]
]


Только в хитропопость в том, что если в .htaccess указать
AddHandler parsed-html html
Action parsed-html /cgi-bin/parser/parser3.4.1.cgi
то браться парсер, настройки и либы будут из /Applications/MAMP/cgi-bin/parser,
а не из ../cgi-bin/parser/
Но на это надо обращать внимание на virtualhost, на localhost оно как ты понимание родное.

Вообще я припоминаю, что когда ставил MAMP были траблы с настройкой базы и долго эксперементировал с libmysql.16.dylib. Насколько я помню у меня был затык именно с ним и его местораположением.
#16Ivan Sergeev
→ vladibarinov [#13] | 01.04.11 12:17
www.parser.ru → | ответить → | в избранное →

Бичевание, сын мой, только бичеванием :-)

Еще как то можно понять использование win-1251 если ты на IIS. Изыди нечистая! Аминь.
Но если ты на Маке...Алилуйяяя!! У которого utf-8 родная стихия и сервер твой собрат юникса, то забудь об пережитке в win-1251 как о страшном видении.

Просто работай в utf-8 и будет тебе успокоение.
	$request:charset[utf-8]
	$response:charset[utf-8]

и даже неверные сервера, присылающие данные в неверных кодировках, не будут проблемой для тебя.
#17Ivan Sergeev
→ vladibarinov [#11] | 01.04.11 12:25
www.parser.ru → | ответить → | в избранное →

А проверь на всякий случай права у libmysql.16.0.0.dylib и libparser3mysql.so (755)

#18vladibarinov
→ Ivan Sergeev [#16] | 02.04.11 04:05
www.parser.ru → | ответить → | в избранное →

Работает

Все заработало.
В довершении пришлось использовать путь к сокету:
$SQL.connect-string[mysql://root:root@[/Applications/MAMP/tmp/mysql/mysql.sock]/p3test]
+++++
$SQL.connect-string[mysql://root:root@localhost/p3test] Работать отказывается.

Спасибо огромное. Пойду свечечку за Ивана Сергеева поставлю.
#19Ivan Sergeev
→ vladibarinov [#18] | 02.04.11 04:22
www.parser.ru → | ответить → | в избранное →

Re: Пожалуйста

Ах елкин, запамятовал про это.
К хорошему так быстро привыкаешь... И про то, что это когда то было проблемой, очень быстро забывается.
Удачи вам!

P.S. Скоро выложу 3-ю версию расцветки/автокомплита для парсера в Coda. Оно теперь стало умнее и ух, аж немогу как лучше. Может и вам поможет.
#20Baskin
→ Ivan Sergeev [#19] | 06.04.11 14:55
www.parser.ru → | ответить → | в избранное →

расцветку для парсера в Coda очень ждем :)

#21Ivan Sergeev
→ Baskin [#20] | 07.04.11 15:32
www.parser.ru → | ответить → | в избранное →

Если интересует исключительно расцветка, то...

Можете спокойно использовать последнюю версию: «Подсветка синтаксиса для Coda (mac) [Обновление: Подсветка синтаксиса для Coda с автокомплитом (mac)]»
Основные изменения в новой версии касаются автокомплита операторов, методов и пр. радостей парсера. Например, набрав ^h получишь подсказку автокомплита:
^hash
^hashfile
Выбрав первый пункт и нажав Enter, автокомплит допишет строку до ^hash:: и предложит:
create
sql
Выбрав например sql, автокомплит завершит конструкцию и получится:
	^hash::sql{
		|
	}

(| – каретка)
#22ceomixcms
→ vladibarinov [#13] | 26.04.11 16:49
www.parser.ru → | ответить → | в избранное →
А что мешает все перекодировать в utf8 или в cp1251. У себя на сайте все поставил на utf8 удобно и поисковики видят все нормально.
Перекодировку можно сделать при помощи PHP Expert Editor, для жителей бывшего союза она бесплатная...
Страницы форума: ← Назад | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 600 | Дальше →