The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Установка DBD::Oracle на Perl5 RHEL4-U4-x86_64-AS (perl dbd oracle redhat)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: perl, dbd, oracle, redhat,  (найти похожие документы)
From: Роман Сотников <roman.sotnikov@gmail.com.> Newsgroups: email Date: Mon, 12 Oct 2008 17:02:14 +0000 (UTC) Subject: Установка DBD::Oracle на Perl5 RHEL4-U4-x86_64-AS ------------------- Потребовалось мне установить DBD::Oracle для Perl5 на RedHat RHEL4-U4-x86_64-AS. Пришлось несколько раз присесть, и в итоге хочу поделиться опытом. Первое что надо было поставить это клиент Oracle. Мы поставили Oracle 9i вот в такой конфигурации: Перед запуском runInstaller надо выполнить команду export LD_ASSUME_KERNEL=2.4.19. Установленные компоненты: network utilities sql*plus jdbc/oci interfaces call interface programmer xml developer's kit Для того чтобы работал DBD::Oracle, необходимо поставить DBI. Я взял со cpan.org вот это DBI-1.607. После этого ставим, я делал под рутом: perl Makefile.PL make make test make install Все встало без проблем. После этого ставим DBD::Oracle, так же под рутом, вот тут-то проблемы и начались: Первое что надо сделать, это добавить в профиль пользователя переменные окружения: В .bash_profile добавляем: ORACLE_HOME=/u01/app/oracle/product/9.2.0 export ORACLE_HOME LD_LIBRARY_PATH=/u01/app/oracle/product/9.2.0/lib export LD_LIBRARY_PATH unset USERNAME После этого я пытался ставить DBD-Oracle-1.22. Он вставать отказался. При сборке вылетала ошибка: Oracle.h:115: error: conflicting types for 'OCIXMLTypeCreateFromSrc' Oracle.h:115: note: an argument type that has a default promotion can't match an empty parameter name list declaration /u01/app/oracle/product/9.2.0/rdbms/demo/ociap.h:10054: error: previous declaration of 'OCIXMLTypeCreateFromSrc' was here Oracle.h:115: error: conflicting types for 'OCIXMLTypeCreateFromSrc' Oracle.h:115: note: an argument type that has a default promotion can't match an empty parameter name list declaration /u01/app/oracle/product/9.2.0/rdbms/demo/ociap.h:10054: error: previous declaration of 'OCIXMLTypeCreateFromSrc' was here make: *** [Oracle.o] Error 1 Я написал письмо в mailing list dbi-users at perl.org Там посоветовали попробовать поставить другую версию DBD::Oracle. Я попытался поставить DBD::Oracle 1.20 - безуспешно. Встала только версия DBD::Oracle 1.19. Ставил вот так: perl Makefile.PL -p make make test make install После этого надо дать права на чтение-запуск на директорию /u01/app/oracle (путь может отличаться) Я сделал так: chmod -R 774 oracle При этом пользователь от имени которого запускаются скрипты, входит в группу dba. После этого выполнил простейший скрипт: ora.pl #!/usr/bin/perl use DBI; $ENV{ORACLE_HOME}="/u01/app/oracle/product/9.2.0"; $ENV{NLS_LANG}="AMERICAN_CIS.CL8MSWIN1251"; my $db="192.192.192.9"; my $dbsid="SID"; my $dbuser="user"; my $dbpass="passwd"; $db = DBI->connect("dbi:Oracle:host=$db;sid=$dbsid", $dbuser, $dbpass); $sql0=$db->prepare(qq{ select 'OK' from dual }); $sql0->execute(); while(@row=$sql0->fetchrow_array){ print $row[0]."\n"; } Скрипт вернул OK. Надеюсь, кому-нибудь это поможет :) Удачи!

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, openwork (?), 16:10, 12/10/2008 [ответить]  
  • +/

    вы из любого сервера делаете слаку ?
    http://ftp.freshrpms.net/pub/freshrpms/redhat/testing/EL4/oracle/x86_64/perl-

    rpm -i ....

    и вся эта байда на фиг не нужна, странно правда для RPM based дистрибутива...

     
  • 1.2, openwork (?), 01:37, 13/10/2008 [ответить]  
  • +/
    модератор ссылки не обрезайте плиз :)
     
  • 1.3, Gromophon (??), 03:22, 03/11/2009 [ответить]  
  • +/
    да, спасибо, помогло DBD-Oracle-1.23 на сусь тоже не ставится, а 19-шка ставится
     
  • 1.4, Gromophon (??), 08:04, 03/11/2009 [ответить]  
  • +/
    а на рхел 1.23 встал без проблем
     
  • 1.5, dwk2005 (?), 15:47, 26/01/2010 [ответить]  
  • +/
    на Linux 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux стало после установки Instant client x64
     
  • 1.6, Михаил (??), 12:54, 26/05/2019 [ответить]  
  • +/
    Добрый день!
     
  • 1.7, Михаил (??), 13:13, 26/05/2019 [ответить]  
  • +/
    Возникла необходимость настроить онлайн-отчеты: работники вводят в браузере IP адрес сервера БД oracle, выбирают период времени, жмут кнопку показать.
    Короче, это тема Apache, cgi, dbi, yaml.
    Решил написать тут, т к скурил весь гугл и ничего не помогло!!! Сам методом тыка на virtual box 100 раз раскатывая сохраненную ранее машину решил вопрос как это сделать.
    ОС на сервере OEL7. Туда подходят команды для redhat, centOS.

    Исходные данные:
    IP адрес сервера 192.168.56.107, установлена ОС и оракл, больше ничего, голая система.


    1) приводим в порядок Oracle( действия в ОС под юзером oracle)
    стартуем листенер:
    lsnrctl start
    стартуем БД
    sqlplus "/as sysdba"
    SQL> startup
    SQL> exit;
    Коннектимся под юзером с правами DBA(у меня это system):
    sqlplus /nolog
    SQL> connect system@test;

    создадим какую-нибудь таблицу:
    SQL> create table m (name varchar2(5), numb int);
    вставим в нее записи:
    SQL> insert into m values('aaaaa', 1);
    SQL> insert into m values('bbbbb', 2);
    SQL> insert into m values('ccccc', 3);
    проверяем:
    SQL> select * from m;

    2) установка apache(действия под юзером root):
    yum install -y httpd

    добавляем в автозагрузку
    systemctl enable httpd

    запускаем:
    systemctl start httpd

    Далее в браузере со своего ПК набрать 192.168.56.107
    (если не заходит на сайт то под root набрать iptables -F)

    3) устанавливаем CPAN(действия под юзером root)
    yum install -y cpan

     
  • 1.8, Михаил (??), 13:20, 26/05/2019 [ответить]  
  • +/
    4) установка модулей PERL
    дать полные права на папку /usr
    (иначе модули не устанавливаются, пишет что нет прав при создании Makefile.pl)

    под юзером oracle пишем cpan
    далее предлагается вариант конфигурации cpan.
    можно набрать manual и настраивать. Я просто нажимал ввод и все стало по умолчанию.
    Далее устанавливаем в след последовательности:
    cpan> install CGI
    cpan> install DBI
    cpan> install YAML
    cpan> install DBD::Oracle
    (если в вас база mysql, то надо DBD::mysql. Короче, загуглите какой драйвер для вашей бд)
    после установки каждого модуля проверяйте, чтобы было Makefile.pl - OK

    Тестируем:
    кидаем скрипт test.pl в /var/www/cgi-bin

    Даем полные права на cgi-bin (внимание, если дать полные права на всю папку /var, то умирает Mobaxterm и больше ни вкакую не коннектится)

    проходим в папку
    cd /var/www/cgi-bin

    стартуем скрипт
    perl test.pl
    И получаем нашу созданную таблицу m

    Сам скрипт:
    #!/usr/bin/perl -W
            use DBI;
            #$ENV{ORACLE_HOME}="/home/orcl/app/oracle/product/11.2.0.4";
            #$ENV{NLS_LANG}="AMERICAN_CIS.CL8MSWIN1251";
            my $db="192.168.56.107";
            my $dbsid="test";
            my $dbuser="system";
            my $dbpass="123";      
            $db = DBI->connect("dbi:Oracle:host=$db;sid=$dbsid", $dbuser, $dbpass);
            $sql0=$db->prepare(qq{
                #select 'OK' from dual
         select * from m
                });
            $sql0->execute();
            while(@row=$sql0->fetchrow_array){
                print $row[0]."\n";
            }

     
  • 1.9, Михаил (??), 13:23, 26/05/2019 [ответить]  
  • +/
    *если вы установили какой модуль в cpan и он с ошибкой и вы ее исправили, то для повторной установки надо перезайти в cpan.

    * если устанавливать не под тем юзером, то потом придется в .bashprofile указывать полный путь к файлику Oracle.pm, иначе будет ошибка: Не удается найти DBD/Oracle.pm в @INC

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру