MySQL Perl, 便利之合

2021-04-01 23:03:38 字數 3220 閱讀 2354

首先你應當已經正確安裝了mysql,並配置好使用者密碼。關於安裝並不是本文討論的內容,mysql自帶的大量文件已經描述了所有細節。

用mysql.server啟動mysql伺服器,這個命令同時呼叫 safe_mysqld 守護程序,因此你可以給它傳參。

用mysql -h host -u user -p

連線到伺服器,如果伺服器就裝在你本機上,就不用加引數

-h host。

輸入密碼無誤後,你將連線到伺服器。現在可以建立自己的資料庫了。

在mysql命令提示符狀態下輸入

create database lf;

,這個是我們的示範資料庫(lf代表linuxfocus),你可以根據你的需要命名成別的。接下來就是給使用者授權了,當然首先你要有足夠的許可權(你需要用有administrator許可權的使用者連線)。如果需要讓某個使用者管理資料庫,通過

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;

下面我們需要在表中填入資料,往一張空表中匯入資料的最簡單的方法就是使用乙個帶tab分隔符的文字檔案。如果文字檔案已經準備好,輸入

load data local infile "maindb.txt" into table trissue;

如果你的文字檔案沒有問題,那麼現在這張表就已經填好資料,你可以通過輸入以下命令檢驗一下:

select * from trissue;

這將導致顯示乙個很長的列表。現在,你就可以進行查詢來獲得任何型別的資料了。

ok,到現在為止,我們僅僅用了mysql,就可以做任何事情,那麼,用perl來做什麼?

#!/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 <

lfauthors main db

下面用指令碼去查詢資料庫。

end_of_start

if (param("author") ne '')

print "";

print "

"; print "

"; print "

"; } else

print "";

print "

"; }

print end_html;

$sth->finish;

# disconnect

$dbh->disconnect;

exit;

這裡是瀏覽器視窗顯示的查詢結果:

如果你想為你的**加上資料庫支援,你顯然要考慮安全性的問題。這裡我們並不提供乙個方案去按部就班的解決web伺服器或資料庫伺服器安全問題,然而有一些基本的原則還是需要注意的。

簡單點說,當你想在web伺服器上提供其它功能時,首先需要考慮的是web伺服器的安全性。這與本文的主題無關,有很多文件討論了這方面內容。乙個比較好的去處是 the linux documentation project.

接下來的一步跟你的資料庫伺服器有關。在安裝一些工具軟體比如mysql,不要忘了閱讀軟體手冊中關於安全性的部分。再重複一下關於使用者密碼的基本原則:不要讓任何帳號沒有密碼,特別是資料庫的root帳號(這個跟計算機的root帳號是不同的)。另乙個要點是許可權的設定:絕不要將所有帳號都賦予完全控制的許可權。這樣做顯的很普遍,因此人們通常會忘了這一點。

此外,還可以試試chroot資料庫。你可以看看這一期裡mark的文章 他講的是另外乙個資料庫但這些內容可應用到mysql中。

另乙個安全措施涉及到資料的傳送過程。在乙個管道(tunnel)裡接收和傳送資料是個不壞的主意。參考through the tunnel。

最後但仍是重要的一點,編寫安全的程式。 perl是一種偉大的語言,但在編寫程式的過程中經常容易出錯。另外一篇linuxfocus文章將教你如何做,特別是用perl的時候。 看看這篇文章. 這是"編寫安全的程式"系列的最後一篇文章,專門談到了有關cgi指令碼的問題。(必讀!)

當然,我們首先假定了在這一些措施之前你已經擁有乙個很堅固的系統,沒有那些著名的漏洞,已經安裝了最新的補丁,以及其它一些必備的安全工具,比如nids(network intrusion detection system)的snort(from http://.snort./), 防火牆,埠與安全掃瞄工具(nmap, nessus)等等。

如果你經濟上能夠承受,你可以在別的一台計算機上安裝伺服器:這樣,就有了乙個單獨的web伺服器,乙個單獨的資料庫伺服器...以及映象伺服器,以此來獲得高可靠性。警告:為保證安全所做的工作永遠不會結束,永遠不可能有真正的安全。你只是試圖去減少危險,每天它們都變得更加危險。

perl.

cpan., perl文件中心

guido的perl教程:

perl i

perl ii

perl iii

專業perl程式設計書評

perl programming

atif的mysql管理工具

linuxfocus上的一篇較老的sql教程

sql part i

sql part ii

**貼自.linuxfocus.,by gees tarbouriech )

OC之繼承,初始化方法,便利構造器

1.繼承 是物件導向程式設計的乙個核心,在objective c的繼承體系中,位於最頂層的根類是nsobject,繼承的方向是單向的,而且只能繼承乙個父類。繼承具有傳遞性,例如 學生繼承於人類,大學生繼承於學生,則大學生不但具有學生的成員變數和方法,而且也具有人類的成員變數和方法。2.初始化方法 顧...

合泰杯 合泰微控制器工程5之串列埠通訊

我們先來看一下程式,前面沒什麼好說,就是定義和宣告資料計數 資料的長度等,重點看下面條件編譯的那部分,也是我標註的那一部分。這裡使用了條件編譯,功能如下 if 常量表示式 程式段1 else程式段2 endif 它的功能是,如常量表示式的值為真 非0 則對程式段1 進行編譯,否則對程式段2進行編譯。...

iOS開發之OC繼承 初始化方法 便利構造器

一 繼承 繼承的上層 父類,繼承的下層 子類。繼承是單向的,不能相互繼承。繼承具有傳遞性 a繼承於b,b繼承於c,a具有b和c的特徵和行 為。子類能繼承父類全部的特徵和行為。特點 oc中只允許單繼承。沒有父類的類稱為根類,oc中的根類是nsobject 祖宗 繼承的內容 所有例項變數和方法。如果子類...