首先你應當已經正確安裝了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 祖宗 繼承的內容 所有例項變數和方法。如果子類...