Проблема - не получается установить plperl на Suse.
Предварительно установил пакет Perl'а, с созданием so-шника.
Но при createlang пишет:
ERROR: could not access file $libdir/plperl : No such file or directory
Спасибо.
Какой пакет установили? Есть ли файл по указаному пути? Содержимое установленого пакета командой rpm -ql пакет? От какого пользователя запускаете createlang?
Установка из пакетов, которые выбирал при установке Suse.
Даже в терминальной сессии присвоил переменной $libdir место, где лежит plperl.so в либе установленного Perl'a.
Запускал естественно от postgres'a.
В общем версий несколько:
1. Не осуществляется корректная подстановка $libdir. Попробуйте вручную вписать нужный каталог. но не в терминале, а в /var/lib/pgsql/data/postgresql.conf (пусть к конфигу даю для Fedora/RHEL/CentOS, где в SuSE думаю найдёте). В конфиге есть специальные строки для этого:
2. Насколько мне известно, в SuSE есть такая штука как AppArmor, которая запрещает определённые действия определённым программам. Если PostgreSQL запрещена загрузка .so, то также может быть возникшая у вас проблема. На эту мысль навело меня сообщение:
ERROR: could not access file $libdir/plperl : No such file or directory
нет доступа (could not access). Также нелишне проверить, доступен ли каталог и сам файл plperl.so на чтение пользователю postgres.
подскажите новичку.
при установке языка возникла проблема.
В папке lib dll есть.
plpgsql - поставил,
-- Выполнение запроса:
CREATE LANGUAGE plpgsql;
Запрос успешно завершён без результата возврата за 96 мс.
а вот plperl не хочет устанавливать,:
-- Выполнение запроса:
CREATE FUNCTION plsample_call_handler() RETURNS language_handler
AS '$libdir/plperl'
LANGUAGE C;
CREATE LANGUAGE plperl
HANDLER plsample_call_handler;
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
********** Ошибка **********
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
SQL state: 58P01
и так:
-- Выполнение запроса:
CREATE LANGUAGE plperl;
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
нЭТ. (((. попробуем/
нашла скачать на Ubuntu,но я мя винда виста= это не пойдет?
и если можно просвятите - там написано- архитектура amd64 b i386 =это чего такое?- о типу CPU? или где хоть искать?
Да, по типу CPU. Если у вас винда, то plperl должен ставится во время установки PostgreSQL. Там должно спрашивать про языки. Но чтобы plperl под Виндой работал, надо весть Perl'овский стек ставить, что довольно проблематично - здесь я во всяком случае ничего дельного сказать не могу.
текст:
>$ createlang –U pgsql plpgsql имя_базы
password: (здесь неподвижно мигает курсор).
-на любые попытки напечатать пароль выдает:
createlang: could not connect to database postgress: FATAL: password authentication failed for user "pgsql"
-Какой у pgsql пасс по умолчанию?
так как я не ставила пароли н на пользователей, ни на подключение к серверу.
-и проблема с синтаксисом команды -U (написано- в ней указать имя),
-Я вот пробовала, ни че не получается, можно пример КАК ИМЕННО в ней имя указывается?
(вместо буквы U или может после????)
Команда-то написана правильно.
Дело в пароле пользователя к базе - здесь это уже обсуждалось многократно, поищи по ошибке.
Резюмируя все варианты ответов, можно предложить:
- в конфиге настроить режим авторизации по системной учетной записи (сейчас, скорее всего, стоит по паролю. Которого нет или неизвестен. Пароль имеется ввиду к postgresql, а не windows!)
- в винде создать этого пользователя, дать необходимые права, пароль
- войти в psql и первыми командами создать в БД пользователя (CREATE ROLE, можно оставить postgres, но я рекомендую завести другого), назначить ему админские права и пароль (\password )
- теперь можно выйти и поменять в конфиге авторизацию обратно по паролю.
P.S. Да. Пользователь по умолчанию при создании базы: postgres, администратор базы, неограниченные права. В целях безопасности рекомендую заводить другого пользователя, делать его владельцем рабочей базы, ограничив доступ к системным.
Какой пакет установили? Есть
Какой пакет установили? Есть ли файл по указаному пути? Содержимое установленого пакета командой rpm -ql пакет? От какого пользователя запускаете createlang?
Установка из пакетов, которые
Установка из пакетов, которые выбирал при установке Suse.
Даже в терминальной сессии присвоил переменной $libdir место, где лежит plperl.so в либе установленного Perl'a.
Запускал естественно от postgres'a.
В общем версий несколько: 1.
В общем версий несколько:
1. Не осуществляется корректная подстановка $libdir. Попробуйте вручную вписать нужный каталог. но не в терминале, а в /var/lib/pgsql/data/postgresql.conf (пусть к конфигу даю для Fedora/RHEL/CentOS, где в SuSE думаю найдёте). В конфиге есть специальные строки для этого:
2. Насколько мне известно, в SuSE есть такая штука как AppArmor, которая запрещает определённые действия определённым программам. Если PostgreSQL запрещена загрузка .so, то также может быть возникшая у вас проблема. На эту мысль навело меня сообщение:
нет доступа (could not access). Также нелишне проверить, доступен ли каталог и сам файл plperl.so на чтение пользователю postgres.
The specified module could not be found.
подскажите новичку.
при установке языка возникла проблема.
В папке lib dll есть.
plpgsql - поставил,
-- Выполнение запроса:
CREATE LANGUAGE plpgsql;
Запрос успешно завершён без результата возврата за 96 мс.
а вот plperl не хочет устанавливать,:
-- Выполнение запроса:
CREATE FUNCTION plsample_call_handler() RETURNS language_handler
AS '$libdir/plperl'
LANGUAGE C;
CREATE LANGUAGE plperl
HANDLER plsample_call_handler;
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
********** Ошибка **********
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
SQL state: 58P01
и так:
-- Выполнение запроса:
CREATE LANGUAGE plperl;
ERROR: could not load library "F:/PostgreSQL/8.4/lib/plperl.dll": The specified module could not be found.
В чем проблема- неподскажете?????Плиззззз.
пакет postgresql-plperl
пакет postgresql-plperl ставили?
нЭТ. (((. попробуем
нЭТ. (((. попробуем/
нашла скачать на Ubuntu,но я мя винда виста= это не пойдет?
и если можно просвятите - там написано- архитектура amd64 b i386 =это чего такое?- о типу CPU? или где хоть искать?
Да, по типу CPU. Если у вас
Да, по типу CPU. Если у вас винда, то plperl должен ставится во время установки PostgreSQL. Там должно спрашивать про языки. Но чтобы plperl под Виндой работал, надо весть Perl'овский стек ставить, что довольно проблематично - здесь я во всяком случае ничего дельного сказать не могу.
подключить plpgsql на Winde
А я нашла(почти) как подключит Перл.
http://av5.com/journals-magazines-online/1/46/447
Вот только с скомандной оболочки вашей ОС . т.е. CMD проблемка.
текст:
>$ createlang –U pgsql plpgsql имя_базы
password: (здесь неподвижно мигает курсор).
-на любые попытки напечатать пароль выдает:
createlang: could not connect to database postgress: FATAL: password authentication failed for user "pgsql"
-Какой у pgsql пасс по умолчанию?
так как я не ставила пароли н на пользователей, ни на подключение к серверу.
-и проблема с синтаксисом команды -U (написано- в ней указать имя),
-Я вот пробовала, ни че не получается, можно пример КАК ИМЕННО в ней имя указывается?
(вместо буквы U или может после????)
Команда-то написана
Команда-то написана правильно.
Дело в пароле пользователя к базе - здесь это уже обсуждалось многократно, поищи по ошибке.
Резюмируя все варианты ответов, можно предложить:
- в конфиге настроить режим авторизации по системной учетной записи (сейчас, скорее всего, стоит по паролю. Которого нет или неизвестен. Пароль имеется ввиду к postgresql, а не windows!)
- в винде создать этого пользователя, дать необходимые права, пароль
- войти в psql и первыми командами создать в БД пользователя (CREATE ROLE, можно оставить postgres, но я рекомендую завести другого), назначить ему админские права и пароль (\password )
- теперь можно выйти и поменять в конфиге авторизацию обратно по паролю.
P.S. Да. Пользователь по умолчанию при создании базы: postgres, администратор базы, неограниченные права. В целях безопасности рекомендую заводить другого пользователя, делать его владельцем рабочей базы, ограничив доступ к системным.