Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Perl. connect mysql. (http://forum.oszone.net/showthread.php?t=144088)

BachiStil 03-07-2009 07:51 1157858

Perl. connect mysql.
 
Здравствуйте, друзья. Помогите пожалуйста новичку.
Я дилетант в perl-е, но очень хочу освоить его.
Захотелось попрактиковаться в работе с mysql. Но не получается даже подключиться к базе.
Код:

#!/usr/bin/perl
$db_user = BachiStil;
$db_password = *******;
use DBI;
$dbh=DBI->connect("DBI:mysql:print:FreeBSD", BachiStil, ****, {RaseError => 1});

И выдает
Код:

DBI connect ('print:FreeBSD','BachiStil',...) failed: Access denied for user
'BachiStil'@'FreeBSD' (using password: YES) at ./print.pl line 5


dmitryst 03-07-2009 16:07 1158237

BachiStil, мда.... у вас сложный случай... Кто ж строки пишет без кавычек?

Код:

#!/usr/bin/perl

use DBI;
$password = 'toor';
$user = 'root';
$data_source = 'DBI:mysql:test';  ####  база  test
$db = DBI->connect ($data_source, $user, $password)|| die "Cant do prepare: " . $db->errstr();  # вот так, чтоб не гадать потом, что за ошибка

$sql = "SELECT `id`, `name`, `code` FROM `personal` WHERE `position`='waiter' ORDER BY `name`"; # пример запроса
$sth2 = $db->prepare ($sql) ||  die "Cannot do SELECT: " . $db->errstr();#  пихаем наш запрос базе....
$sth2->execute;  #  ... если нет ошибок, то исполняем его

while (($id, $name, $code) = $sth2->fetchrow_array ())  # обрабатываем ответ...  он идет в виде массива
{
/// тут пишем ваш код обработки, если нужно

$position =  '<option value="'. $id . '">'. $name . '</option>';
push @options, $position ;
push @pose, '0';
push @codes, $code;
}
$sth2->finish;  # все, ответ разобран, завершаем этот запрос

$db->disconnect(); # отсоединяемся от базы

Цитата:

Цитата BachiStil
DBI connect ('print:FreeBSD','BachiStil',...) failed: Access denied for user 'BachiStil'@'FreeBSD' (using password: YES) at ./print.pl line 5 »

ну так у вас запрешен доступ 'BachiStil'@'FreeBSD' - зайдите через клиента mysql локально и дайте ему привилегию входа с любой машины

BachiStil 07-07-2009 08:12 1160781

dmitryst,
Разрешил вход с любой машины все равно тоже самое.
попробовал вот так:
Код:

$dbh=DBI->connect("DBI:mysql:database=print;", BachiStil, ****, {RaseError => 1});
теперь вот что выводит:
Код:

Can't set DBI::db=HASH(0x825f178)->{RaseError}: unrecognised attribute name or
 invalid value at / usr/local/lib/perl5/site_perl/5.8.9/mach/DBI.pm line 693.
Can't get DBI::db=HASH(0x825f178)->{RaseError}: unrecognised attribute name
at /usr/local/lib/per l5/site_perl/5.8.9/mach/DBI.pm line 693.


BachiStil 07-07-2009 09:27 1160826

Нашел ошибку. Опечатался я. RaiseError


Время: 05:23.

Время: 05:23.
© OSzone.net 2001-