Автор Тема: DBI::MySql  (Прочетена 3147 пъти)

maniac

  • Напреднали
  • *****
  • Публикации: 34
    • Профил
DBI::MySql
« -: Apr 25, 2004, 01:32 »
Здравейте,
С риск да стана досаден искам да попитам за още нещо.
Имам проблеми с инсталацията на Sqlbot .Представлява бот за Opendchub (dc++ сървър), който представя статистики и управление на сървъра през web форма. Цялата гимнастика става през MySQL.Бота изисква няколко перл модула.
DBI::MySql
IP::Country::Fast
Geography-Countries
Date::Simple
С повечето от тях се справих при инсталирането, но с DBI::MySql имам проблеми.....явно това е част от някакъв пакет модули, който не мога да открия. В readme  файла на бота пише, че този (DBI::MySql) го има във всяка дистрибуция. Има ли някакъв начин да проверя дали е инсталиран в системата и ако не е мога ли да го сложа по някакъв по-лесен начин (apt-get  примерно).
Всичко останало протече нормално.При стартиране web интерфейса ми показа
Цитат
undefined function: mysql_connect()


Предварително благодаря на всички.
Поздрави!
Активен

for beer in $(ls /home/fridge); do drink $beer; done

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
DBI::MySql
« Отговор #1 -: Apr 25, 2004, 14:50 »
Ако си с Debian, ползвай 'apt-cache search <keyword>'.

От тази команда разбираме, че пакетът се очевидно се казва 'libapache-dbi-perl'. Оттук нататък вече ползваш apt-get.
Активен

-------------------------------------------------------------------------
./debian/rules

  • Гост
DBI::MySql
« Отговор #2 -: Apr 25, 2004, 17:37 »
DBI модулът осигурява връзка с бази данни в Perl, като ползва DBD::xxx, които са драйвери към конкретна база данни, в твоя случай DBD::mysql.
Debian пакетите, които ти трябват, са libdbi-perl и libdbd-mysql-perl.
За да провериш дали имаш правилно инсталирани модулите изпълни последователно perl -MDBI и perl -MDBD::mysql, и ако не даде грешка, то всичко е наред.
Активен

maniac

  • Напреднали
  • *****
  • Публикации: 34
    • Профил
DBI::MySql
« Отговор #3 -: Apr 25, 2004, 17:44 »
Цитат
libapache-dbi-perl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not

Явно не е в този модул проблема. Къде мога да го търся?
Значи  още нещо странно което забелязах:
при пускането на инстал скрипта (написан на перл) за бота има 2 опции- за създаване на база данни и за изтриването и. Скрипта я създава без никакжи грешки  но при изтриването ми казва това:
Цитат
debian:/backup/temp/install# perl sqlbotInstall.pl
In order to install the neccessary SQL tables you should have SQL running, and already have a username and password, that SQLbot will use. If you have not yet done so you should Quit this install and setup SQL first.
Enter the SQL server Hostname [localhost]:
You should of already created a username in SQL for the bot to use.
Enter the username the bot will use to access SQL [sqlbot]:
You should of already created a password for sqlbot, in SQL for the bot to use.
Enter the password [sqlbot]: xxxxxx
1 - Install new tables and fields
2 - Delete all existing tables and fields (If new version requires it)
3 - Exit
option :[1]: 2
DBD::mysql::db do failed: Unknown table 'fakers' at sqlbotInstall.pl line 42, <STDIN> line 4.
DROP "fakers" failed: DBD::mysql::db do failed: Unknown table 'fakers' at sqlbotInstall.pl line 42, <STDIN> line 4.

DBD::mysql::db do failed: Unknown table 'log' at sqlbotInstall.pl line 44, <STDIN> line 4.
DROP "log" failed: DBD::mysql::db do failed: Unknown table 'log' at sqlbotInstall.pl line 44, <STDIN> line 4.

DBD::mysql::db do failed: Unknown table 'online' at sqlbotInstall.pl line 46, <STDIN> line 4.
DROP "online" failed: DBD::mysql::db do failed: Unknown table 'online' at sqlbotInstall.pl line 46, <STDIN> line 4.

DBD::mysql::db do failed: Unknown table 'user_stats' at sqlbotInstall.pl line 48, <STDIN> line 4.
DROP "user_stats" failed: DBD::mysql::db do failed: Unknown table 'user_stats' at sqlbotInstall.pl line 48, <STDIN> line 4.

debian:/backup/temp/install#

user-а sqlbot  има пълни права за запис и триене в MySQL.
След като и перл модулите са инсталирани, можете ли да ми кажете къде да търся проблема.
Между другото user-a  под който е стартирано апачето трябва ли да има достъп до MySQL? Може да звучи тъпо ама вече незнам какво да мисля....  '<img'>
Активен

for beer in $(ls /home/fridge); do drink $beer; done

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
DBI::MySql
« Отговор #4 -: Apr 25, 2004, 18:25 »
По принцип mysql_connect() не е Perl функция, а PHP такава. Последното което си постнал казва, че не може да бъде изтрита таблица която не съществува.Пробвай първо да инсталираш таблиците с опция [1] от менюто.
Иначе модулите DBI и DBD::mysql си ги имаш и даже правят връзка към базата данни.

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
DBI::MySql
« Отговор #5 -: Apr 25, 2004, 20:14 »
Цитат (Guest @ Април 25 2004,20:37)
Debian пакетите, които ти трябват, са libdbi-perl и libdbd-mysql-perl.

Вероятно си прав. Просто човекът трябва да се поразтърси с apt-cache и да намери подходящия пакет.
Активен

-------------------------------------------------------------------------
./debian/rules

maniac

  • Напреднали
  • *****
  • Публикации: 34
    • Профил
DBI::MySql
« Отговор #6 -: Apr 26, 2004, 19:38 »
Всичко тръгна, както трябва.
Специални благодарности на всички!

С две думи какво направих за да се реши проблема в случай, че някой се сблъска с него:
-> libdbi-perl и libdbd-mysql-perl са инсталирани.
-> perl -MDBI и perl -MDBD::mysql не дават грешки.
-> undefined function: mysql_connect()  го премахнах с добавянето на
Примерен код
extension=mysql.so
extension_dir=/usr/lib/php4/20020429/

в php.ini

Но част от скриптовете на web интерфеиса пак не работеха.
-> dobavih v php.ini
Примерен код
register_globals = On

и всичко тръгна.
Поздрави!
Активен

for beer in $(ls /home/fridge); do drink $beer; done