Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу создать пользователя в MySQL, Perl DBI 
V
    Опции темы
Vahgo
Дата 1.5.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Столкнулся со странной проблемой - не могу создать пользователя... Пробовал, используя GRANT и напрямую - безуспешно. Даж ошибку конкретно не выдает, тока "DBD::mysql::db prepare warning: файл, 10 строка" + "Error: файл, 10 строка". Вот, непосредственно, код:

Вариант с GRANT:

Код

use strict;
use DBI;
use warnings;

my $user_name = "user";
my $DB_name = "test";
my $user_pass = "secret";
my $dbh = DBI->connect("DBI:mysql:mysql",'root','xxx') || 
        die "Connecting error: DBI::errstr";
my $sth = $dbh->prepare("GRANT SELECT,INSERT ON $DB_name TO $user_name\@localhost IDENTIFIED BY \'$user_pass\'") ||
        die "Error: $dbh->errstr";
$sth->execute;
$sth->finish();
$dbh->disconnect();


Та же самая команда при наборе в шеле MySQL работает.

Вариант с INSERT:

Код

use strict;
use DBI;
use warnings;

my $user_name = "user";
my $DB_name = "test";
my $user_pass = "secret";
my $dbh = DBI->connect("DBI:mysql:mysql",'root','xxx') || 
        die "Connecting error: DBI::errstr";
my $sth = $dbh->prepare("INSERT INTO user (Host,User,Password)
            VALUES ('localhost',$user_name,PASSWORD($user_pass))") || die "Error: $DBI::errstr";
$sth->execute;
$sth = $dbh->prepare("INSERT INTO db (Host,Db,User,Select_priv,Insert_priv) 
            VALUES ('localhost',$DB_name,$user_name,'Y','Y')") ||  die "Error: $DBI::errstr";
$sth->execute;
$sth->finish();
$dbh->disconnect();

Заранее спасибо за помощь...
PM MAIL   Вверх
Бонифаций
Дата 2.5.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



а без prepare сделать? скажем

$dbh->do("GRANT ....") or die DBI::errstr




--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Vahgo
Дата 2.5.2007, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Ошибка уже содержательнее:
Код

DO: Something wrong while try to prepare query This command is not supported in the prepared statement protocol yet
Error: DBI::db=HASH(0x82ad3f8)->errstr at ... line 12

Эт что значит, GRANT не поддерживается!? Как ж так??!! 
PM MAIL   Вверх
Бонифаций
Дата 3.5.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



Пробуем

Код

use DBI;

$d = DBI->connect("dbi:mysql:test","root") or die DBI::errstr ;
$d -> do("GRANT SELECT,INSERT ON test.* TO w\@localhost IDENTIFIED BY \'mpassw\'") or die DBI::errstr;


Все отработало без ошибок. Какие у вас версии perl, dbd:mysq и mysql ?


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Бонифаций
Дата 3.5.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



у меня:

mysql> select version();
+----------------------------+
| version()                  |
+----------------------------+
| 5.0.38-Ubuntu_0ubuntu1-log | 
+----------------------------+
1 row in set (0.00 sec)

# perl -v

This is perl, v5.8.8 built for i486-linux-gnu-thread-multi







--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Vahgo
Дата 3.5.2007, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Все точь-в-точь к у тебя smile 
Но, тем не менее, не работает... smile Копировал твою строку с do (на всякий русский случай) - не работает...
PM MAIL   Вверх
Бонифаций
Дата 3.5.2007, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



тэкс. ubuntu то есть... какая версия libdbd-mysql-perl установлено? у меня 3.0002


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Vahgo
Дата 3.5.2007, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



А у меня  3.0008-1build1... Это ты к чему?
PM MAIL   Вверх
Vahgo
Дата 4.5.2007, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 29.7.2006

Репутация: нет
Всего: нет



Переустановил libdbd-mysql-perl (той же версии) и все заработало. Глюк какой-то... Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0825 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.