|
|
This document is available in: English Castellano ChineseGB Deutsch Francais Nederlands Portugues Russian Turkce Arabic |
by Georges Tarbouriech <georges.t(at)linuxfocus.org> ��������: Georges����ʹ��Unix���꣬��ϲ���������������������רҵ�����ڵ����⡣ Ŀ¼: |
ÕªÒª:
MySQL��Perl���������൱��ʱ�䣬����"ʱ��"��ͣ�仯�ţ�������Ȼ���㷺ʹ�á�����������ν����ֹ��߽����һ��Ӧ����Ineternet���������ϡ����е����ӱ�д��Unixϵͳ����Ȼ��ͬ������Ӧ���������㷺ʹ�õ�ϵͳ�С�
���Ķ������ϵ�Ӧ�����������ۣ������������ԣ��ٶȣ��ɿ��ԣ���ȫ�Եȡ�
���IJ�����һƪMYSQL��Perl�Ľ̳̣�Ҳ����һƪ��MYSQL��Perl�����ۡ�
���ǽ�������ν��ʹ��MySQL��Perl����Ҫ����:"there is more than one way to do it"��
MySQL��һ�ֹ�ϵ�����ݿ�ϵͳ(RDBMS),����ҳΪhttp://www.mysql.com/��
����GNU GPL�����������ʹ�ã���ע���Ķ���Ȩ������ ������������ƽ̨�Ϲ���������������ͬʱ���ǿͻ��ˡ���MySQL֮�⻹��һЩ
�����������������ʵ�RDBMS,�����ﲻ���καȽϣ����Ľ�����MYSQL������Ҳ����������Щ������ҵ���ݿ���
Informix,Oracle,Sybase�����ȣ����㹻��������MySQL��Internet��ʹ����㷺�����ݿ�ϵͳ֮һ��
����ƪ����������ʹ�õ�MySQL�汾��3.23.36�����ڵ��ȶ����а汾��3.23.46�������ȴ���4.0��
���ڲ���֮�С����ǿ��Դ��������ص����ǵ�Դ�������ļ���
Ϊ�˽�MySQL��Perl���ʹ�ã��㻹��ҪЩ����: Perl DBIģ�顣������Ӧ������DBI,
Msql-Mysql-modules, Data-Dumper��Data-ShowTable�ȡ�
���IJ��������ǵİ�װ���̣���Ϊ�Ǻܼ򵥣�ͬʱ���е�˵���ļ��Ѿ��ṩ������Ҫ֪�����������ݡ�
Perlȫ����ʵ��ժ¼�뱨������(Practical Extraction and Report Language)��
����������ļ�������������ժҪ...�����ܿ����Ĺ��ܾ�������չ�� �㼸���������������κ�
�κ����飺ϵͳ������CGI�ű������Լ����ݿ�ӿڳ���
Perl����������(������ܳ���ȫ���Ļ�)Unix���а汾�У�
��������Щ����ѵģ���Щ���ǡ�����д��ʱ���ȶ��İ汾��5.6.1���汾5.7.2�ڲ����С�
���IJ��õ���5.005_03,�ܲ�����һ���汾�������ϵ㡣�����Ļ��ӻ�û��װPerl,����Դ�http://www.perl.com/���ء�Perl�ṩ������ģ�飬�����Ǽ�����������κ��£�����Դ������վ��CPAN��Ŀ�ҵ����ǡ�
���һ�㣬Ϊ��������������������ʼ�������㻹��Ҫһ��web��������ApacheӦ����һ��������ѡ���������ڶ���Unixϵͳ�С�
����㻹û�У����Ե�http://www.apache.org/���ء�
��Ҳ���Ѿ�ע�⵽LinuxFocus��־�ж������Եİ汾�������ζ����Ϊ�à¼ï¿½ï¿½ÒªÍ¬Ê±ï¿½ï¿½ï¿½ï¿½
�������Լ��������İ汾��һ������£����ǿ��Կ�����Լ200ƪ���£�ƽ��ÿƪ������5�����Եİ汾�����������˴�Լ1000ƪ���²��һ��ڼ���������
��Щ������Ҫ���浵����ʽ��׼�����ܽἰժҪ.....Ӧ����ô����Щ�£���Ȼ����Perl!
���ǵ��ܱ�Guido Socher��д������perl����ʹ���ǵĹ�����ļ������࣬��д��һ������ͷ��
Perl�̳̺�һ������Perl���顣���ձ���ĩβ�IJο����ײ��֡�
Javi,���ǵ��������à¼ï¿½ï¿½ï¿½ï¿½Perl��д��һ������������������ȡ�
Atif�����ǵ��������ߣ�
������perl��������������ĸ�����Perl�� ��ͬʱҲ׫д����MySQL�������£�������һ��WEB�������߸Ľ�������
ͬ��������ڲο����ײ����ҵ�����
��֮���������Ѱ��һ��Perl���磬����LinuxFocus��
����LinuxFocus���İ�ıà¼Ö®Ò»ï¿½ï¿½ï¿½Ò¸ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç´ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ô¼ï¿½ï¿½ï¿½LinuxFocus���ݿ⣬�²���ʲô:
MySQL ��Perl!
������Ӧ���Ѿ���ȷ��װ��MySQL�������ú��û����롣���ڰ�װ�����DZ������۵����ݣ�MySQL�Դ���
�����ĵ��Ѿ�����������ϸ�ڡ�
��mysql.server����MySQL������,�������ͬʱ����
safe_mysqld �ػ����̣��������Ը������Ρ�
��
mysql -h host -u user -p
���ӵ��������������������װ���㱾���ϣ��Ͳ��üӲ���-h host��CREATE DATABASE lf;
����������ǵ�ʾ�����ݿ�(lf����LinuxFocus)�� ����Ը��������Ҫ�����ɱ�ġ����������Ǹ��û���Ȩ�ˣ���Ȼ������Ҫ���㹻��Ȩ�ޣ�����Ҫ ����administratorȨ�޵��û����ӣ��������Ҫ��ij���û��������ݿ⣬ͨ��GRANT ALL ON lf.* TO username;
������Ȩ������USE lf
ѡ��ղŴ��������ݿ⣬������һ�ű��� ���������Ǵ����ı���trissue,�����ʽΪ��CREATE TABLE trissue (num INTEGER UNSIGNED, category VARCHAR(25), title VARCHAR(40), author VARCHAR(20), en VARCHAR(20), es VARCHAR(20), fr VARCHAR(20),de VARCHAR(20), nl VARCHAR(20), ru VARCHAR(20), tk VARCHAR(20), issue VARCHAR(20));
ͨ�������������Լ��һ�����ǸղŴ����ı������Ƿ���ȷUSE lf
SHOW TABLES;
DESCRIBE trissue;
LOAD DATA LOCAL INFILE "maindb.txt" INTO TABLE trissue;
�������ı��ļ�û�� ���⣬��ô�������ű����Ѿ�������ݣ������ͨ�����������������һ�£�SELECT * FROM trissue;
�⽫������ʾһ���ܳ����б��� ���ڣ���Ϳ��Խ��в�ѯ������κ����͵������ˡ�Perl���԰��������Զ����в�ѯ���������ʾ��һ��WEB������ϣ��ȵȡ��ظ�һ�飬
������ҪΪPerl��װ��ȷ��ģ��ʹ֮����MYSQL���Ϲ�����
����������Perl��дһ��CGI�ű������������ǽ�Perl��HTML���������ʵ�ֲ�ѯ���ݿ�
���������ʽ�������
������һ���򵥵Ľű�����ѯijһ���ߵ��������£���ʾ���µı�ţ����࣬
���⣬��ͬ���԰汾�ķ����ߵ��������������µ���־�ںš�
����Խ�����ű�����һ��ģ��ʹ�ã�����ע��������̲�����һ��
�dz��ɿ��ij�������Դ�������������ص�һ������ϸע�͵İ汾��=>here<=.
#!/usr/bin/perl -Tw
# First, we say this is a "Tainted" Perl
script.
#
# This is a comment
# db consult
#
# We use the
Perl DBI module
use DBI;
# As cgi :
use CGI qw(param());
print <<END_of_start;
Content-type: text/html
<html>
<title>LFAuthors main db</title>
<center><TABLE>
<TR VALIGN=TOP>
<TD><form action="/cgi-bin/lf.cgi" method="get">
# Here
comes the button's title for the launching page
<input type="submit"
value=" LFAuth ">
</form>
</TD>
</TR>
</TABLE>
<center><H2>Search by author</H2></center>
<form action=\"/cgi-bin/lf.cgi\" method=\"get\">Author name :
<input
type=\"text\" size=\"30\" name=\"author\"><input
type=\"submit\"
value=\"Search...\"></form></center>
END_of_start
if (param("author") ne '') {
$author =
param("author");
$autsrch.='"';
$autsrch.=$author;
$autsrch.='"';
# We connect to the database named lf as user doe
$dbh = DBI->connect("DBI:mysql:lf","doe",'');
$sth =
$dbh->prepare("
select *
from trissue
where
author = $autsrch
");
$sth->execute;
print <<END_suite;
<center>
<TABLE
BORDER=>
<tr bgcolor=#A1C4EE>
<th width=60
align=CENTER><font color=#000000> Num </font></th>
<th width=110 align=CENTER><font color=#000000> Category
</font></th>
<th width=110 align=CENTER><font
color=#000000> Title </font></th>
<th width=110
align=CENTER><font color=#000000> Author </font></th>
<th width=110 align=CENTER><font color=#000000> En
</font></th>
<th width=110 align=CENTER><font
color=#000000> Es </font></th>
<th width=110
align=CENTER><font color=#000000> Fr </font></th>
<th width=110 align=CENTER><font color=#000000> De
</font></th>
<th width=110 align=CENTER><font
color=#000000> Nl </font></th>
<th width=110
align=CENTER><font color=#000000> Ru </font></th>
<th width=110 align=CENTER><font color=#000000> Tk
</font></th>
<th width=110 align=CENTER><font
color=#000000> Issue </font></th>
</tr>
END_suite
while(
($num,$category,$title,$author,$en,$es,$fr,$de,$nl,$ru,$tk,$issue)
=$sth->fetchrow() ) {
print "<tr>";
print "<td width=60
bgcolor=#FFFFE8 align=center> $num</td>";
print "<td width=110
bgcolor=#FFFFE8 align=left> $category</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $title</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $author</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $en</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $es</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $fr</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $de</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $nl</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $ru</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $tk</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $issue</td>";
print
"</tr>";
}
print "</TABLE>";
print "<BR>";
print "<BR>";
print "<br>";
} else {
#
DB Connect
$dbh = DBI->connect("DBI:mysql:lf","doe",'');
# Search
$sth = $dbh->prepare("
select *
from
trissue
");
$sth->execute;
# Display result
print <<SUITE;
<center>
<TABLE
BORDER=>
<tr bgcolor=#A1C4EE>
<th width=60
align=CENTER><font color=#000000> Num </font></th>
<th width=110 align=CENTER><font color=#000000> Category
</font></th>
<th width=110 align=CENTER><font
color=#000000> Title </font></th>
<th width=110
align=CENTER><font color=#000000> Author </font></th>
<th width=110 align=CENTER><font color=#000000> En
</font></th>
<th width=110 align=CENTER><font
color=#000000> Es </font></th>
<th width=110
align=CENTER><font color=#000000> Fr </font></th>
<th width=110 align=CENTER><font color=#000000> De
</font></th>
<th width=110 align=CENTER><font
color=#000000> Nl </font></th>
<th width=110
align=CENTER><font color=#000000> Ru </font></th>
<th width=110 align=CENTER><font color=#000000> Tk
</font></th>
<th width=110 align=CENTER><font
color=#000000> Issue </font></th>
</tr>
SUITE
while(
($num,$category,$title,$author,$en,$es,$fr,$de,$nl,$ru,$tk,$issue)
=$sth->fetchrow() ) {
print "<tr>";
print "<td width=60
bgcolor=#FFFFE8 align=center> $num</td>";
print "<td width=110
bgcolor=#FFFFE8 align=left> $category</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $title</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $author</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $en</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $es</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $fr</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $de</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $nl</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $ru</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $tk</td>";
print "<td
width=110 bgcolor=#FFFFE8 align=left> $issue</td>";
print
"</tr>";
}
print "</TABLE>";
print "<BR>";
}
print end_html;
$sth->finish;
# Disconnect
$dbh->disconnect;
exit;
�������Ϊ�����վ�������ݿ�֧�֣�����ȻҪ���ǰ�ȫ�Ե����⡣�������Dz����ṩ
һ������ȥ�����Ͱ�Ľ��WEB�����������ݿ��������ȫ���⣬Ȼ����һЩ������Ô������Ҫ
ע��ġ�
�򵥵�˵����������WEB���������ṩ��������ʱ��������Ҫ���ǵ���WEB�������İ�ȫ�ԡ�
���뱾�ĵ������޹أ��кܶ��ĵ��������ⷽ�����ݡ�һ���ȽϺõ�ȥ����
the Linux
Documentation Project.
��������һ����������ݿ�������йء��ڰ�װһЩ������������MySQL,��Ҫ�����Ķ������ֲ���
���ڰ�ȫ�ԵIJ��֡����ظ�һ�¹����û�����Ļ���Ô�ò£º²ï¿½Òªï¿½ï¿½ï¿½Îºï¿½ï¿½Êºï¿½Ã»ï¿½ï¿½ï¿½ï¿½ï¿½ë£¬ï¿½Ø±ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ý¿ï¿½
��root�ʺţ�������������root�ʺ��Dz�ͬ�ģ�����һ��Ҫ����Ȩ�޵����ã�����Ҫ�������ʺŶ�����
��ȫ���Ƶ�Ȩ�ޡ��������Եĺ��ձ飬�������ͨ����������һ�㡣
���⣬����������chroot���ݿ⡣����Կ�����һ����Mark������
������������һ�����ݿ⵫��Щ���ݿ�Ӧ�õ�MySQL�С�
��һ����ȫ��ʩ�漰�����ݵĴ��͹��̡�
��һ���ܵ���tunnel������պͷ��������Ǹ����������⡣�ο�Through the
tunnel��
���������Ҫ��һ�㣬��д��ȫ�ij���
Perl��һ��ΰ������ԣ����ڱ�д����Ĺ����о������׳���������һƪLinuxFocus���½������������
�ر�����Perl��ʱ��
������ƪ����.
����"��д��ȫ�ij���"ϵ�е����һƪ���£�ר��̸�����й�CGI�ű������⡣���ض�����
��Ȼ,�������ȼٶ�������һЩ��ʩ֮ǰ���Ѿ�ӵ��һ���ܼ�̵�ϵͳ��û����Щ������©�����Ѿ���װ�����µ�
�������Լ�����һЩ�ر��İ�ȫ���ߣ�����NIDS(Network Intrusion Detection System)��snort(from http://www.snort.org/), ����ǽ,�˿��밲ȫɨ�蹤��(nmap, nessus)�ȵȡ�
����ã¾ï¿½ï¿½ï¿½ï¿½ï¿½Ü¹ï¿½ï¿½ï¿½ï¿½Ü£ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½
�ڱ��һ̨������ϰ�װ��������������������һ��������WEB��������һ�����������ݿ������...�Լ������������
�Դ�����ø߿ɿ��ԡ�
���棺Ϊ��֤��ȫ������
������Զ�����������Զ�������������İ�ȫ����ֻ����ͼȥ����Σ�գ�ÿ�����Ƕ���ø���Σ�ա�
��Ϊ"There Is More Than One Way to Do It",�����ѡ����ķ�ʽ��
������������RDBMS���Լ���������֮��ص����ԡ�д��ƪ������Ϊ��չʾMySQL��Perl����γ�ɫ�ĺ�����
��Ȼ������ѡ��������Ե������ԣ���ϲ��MySQL����Ϊ��С������������ϵͳ�����У�
�ٶȿ죬�ɿ�...��Ҳ�dz�����MySQL��Ĺ��������������ڶ��Ͷ���ߡ�����Ϊ���͵��ǣ�����
�����������ظ��ԵĹ���(�ڴ�֮ǰ�Ѿ�����ҵ�����Ľ������)�������������ĸ��Ӽ򵥡�
����Perl,Ҫ˵�Ķ�˵�ˡ���Ҫ����һЩ��
������û���������޷������ģ���������һ�����ܻ���һ������Ա��������Ĺ�����
Perl����(the perl community)��������������Դ������֮һ����һ������Perl Journal����־��������SysAdmin��־��һ���֣�ÿ����ƪ���£�����Ե�http://www.samag.com/���ġ�
һЩ���⻰: LinuxFocus�Ķ�����Ҳ��û��ע�⵽�뱾��־��ص�һЩ�ˣ�Ȼ������ȴ���Կ���LinuxFocus��־�������Եİ汾��
��û��ע�⵽һЩС�� ������Ҳ��ֻ��һ�����ˣ�ȴ����˴����Ĺ�������������վά���ߣ�
���ߣ��ȵȡ����������飬���������飬��ᷢ�ֶ������¶�����Kirill��Erdal���롣
��������������������V��ͬ����ˣ���Щ�˸��˶�ô�˲���Ĺ�������Ҫ�����DZ�ʾף�أ���л��λ!
������������Ӧ����������л��
��Ǹ��Щ�����ĵ������޹أ�����������Щ��ֵ��һ��ġ�
�ص����µ�������������һ�ι��������������������������ġ�Ӧ����л��Щ������MySQL��
Perl���ˣ������������ṩ������ΰ��Ĺ��ߣ����Ҷ�������ѵġ���Щ��������������ҵ
��Ʒ���Ҳ����ѷɫ��������ܱ����dz�ɫ�Ļ��������Ǿ������£�������ϸ���ĵ��������
���������ڼ�������Unixϵͳ�С������ҵ�ͬ����ɫ�ı�����������벻�ܣ�
��ƪ���¿���û�н�����ٶ��������������ʹ������б�Ҫ������Щ���������������õġ�
���Dz���������һ��ΰ���ʱ����
Perl.org
cpan.org, Perl�ĵ�����
Guido��Perl�̳̣�
Perl I
Perl II
Perl III
רҵPerl�������
Perl Programming
Atif��MySQL��������
LinuxFocus��־��MySQL����: �����£�������һ��
MySQL
LinuxFocus�ϵ�һƪ���ϵ�SQL�̳�
SQL Part I
SQL Part II
|
��ҳ��LinuxFocus�à¼ï¿½ï¿½Î¬ï¿½ï¿½
© Georges Tarbouriech, FDL LinuxFocus.org ���������LinuxFocus�������������� |
������Ϣ:
|
2002-01-14, generated by lfparser version 2.23