mysql數據庫范文
時間:2023-04-07 09:43:54
導語:如何才能寫好一篇mysql數據庫,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
1、通過線程的互斥來同步操作數據庫;
2、數據庫采用事務處理表中的數據;
3、采用共享方式打開數據庫,不能以獨占方式打開數據庫建立一個mysql連接表加上一個臨界區,根據實際情況定大小。
篇2
網上有關于eclipse連接mySql數據庫資料,在百度上搜索相關信息,完全符合標題的很多,但闡述的都不詳細,現就eclipse連接mySql問題通過實例進行分析。
一、正確安裝MySQL。
打開下載的mysql安裝文件mysql-5.5.32-win32.zip正確安裝,為了數據安全,不要把mysql安裝在系統盤,如C:盤。如果是重新安裝mysql的話,要注意先備份好mysql目錄中的data目錄,這個目錄是所有用戶的數據目錄,非常重要。重裝時,備份好數據后,先卸載掉舊的mysql,并刪除原mysql安裝目錄。注意選擇Custom選項,這樣才能修改安裝目錄。
二、創建一個MySql數據庫結果如圖1所示。
三、打開Eclipse,創建一個項目(myTest),安裝mysql直連驅動jar包。
步驟:右鍵點擊myTest--->build Path--->add external Archiver...選擇jdbc驅動,點擊確定。
四、驅動已經導入,下面我們來寫一個程序驗證一下。在myTest工程下建Class文件,名為mySql_1,輸入如下代碼:
import java.sql.*;
public class mySql_1
{
public static void main(String args[])
{ try
{
Class.forName("com.mysql.jdbc.Driver"); //加載MYSQL JDBC驅動程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功安裝Mysql驅動!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
try
{
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/myTest","root","z");
System.out.println("成功 Mysql服務!");
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_1"); //z 為你表的名稱
while (rs.next())
{
System.out.print(rs.getString("id")+" ");
System.out.print(rs.getString("name"));
System.out.println(rs.getString("age"));
} }
catch (Exception e) {
System.out.print("get data error!");
e.printStackTrace();
} } }
五、我們來寫一個程序驗證一下向MySQL數據庫中插入數據。在myTest工程下建Class文件,名為mySql_2,輸入如下代碼,往MySQL的Test_1表中插入10條數據。
import java.sql.*;
public class mySql_2
{
public static void main(String args[])
{ try
{
Class.forName("com.mysql.jdbc.Driver"); //加載MYSQL JDBC驅動程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功安裝Mysql驅動!");
}
catch (Exception e)
{ System.out.print("錯誤安裝Mysql驅動!");
e.printStackTrace();
} try
{ Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mytest","root","z");
int num=10;
PreparedStatement Statement=connect.prepareStatement("insert into test_1 values(?,?,?)");
for(int i=0;i
Statement.setString(1,"No."+i);//給第一個問號賦值;
Statement.setString(2,"姓名"+i); //給第二個問號賦值;
Statement.setInt(3,100+i); //給第三個問號賦;
Statement.executeUpdate();
}
// } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
// System.out.println("An error has occurred:"+e.toString());
// e.printStackTrace();
}
catch(SQLException e)
{ } } }
篇3
【關鍵詞】MYSQL;MSSQL;安全分析;漏洞探測
動態網站的安全是關系到網站是否正常運行的根本,而企業內部客戶信息等數據的安全更是其命脈所在,這些數據通常都保存在網站的后臺數據庫中,那么安全可靠的數據庫是至關重要的。目前中小型企業多使用MYSQL和MSSQL作為后臺數據庫。
本文將從數據庫系統的用戶權限、目錄權限、漏洞探測和密碼竊聽四個方面對MYSQL和MSSQL數據庫做安全性分析。
1.測試環境
Windows server 2003網絡操作系統,默認系統管理員賬戶,在IIS6.0上配置網站和FTP服務器,系統支持asp,,PHP。安裝有MySql5.1和SQL server2008數據庫系統。
2.數據庫安全性分析
2.1 用戶權限
(1)當你試圖聯接一個MySQL服務器時,身份檢查使用user表中3個字段(Host,User和Password)。服務器在user表條目中匹配你的主機名和用戶名,并當你提供了正確的口令才接受連接。我們通過root用戶和密碼,連接數據庫后,使用select命令查看用戶和權限。如圖1所示。
圖1 Mysql初始用戶及權限
第一條說明可在本機使用root用密碼登陸,擁有刪除記錄,修改記錄,刪除表等權限,如果密碼強壯,那么,這是安全的。
第二條表示在任何主機使用root不需密碼登陸,擁有刪除記錄,修改記錄,刪除表等權限,’%’在Host列里意味著“任何主機”并且是不特定的。
第三條表示在本機(localhost)匿名登陸,擁有刪除記錄,修改記錄,刪除表等權限,空白User值意味著“任何用戶”并且是最不特定的。
第四條表示可以在任何主機匿名登陸,但沒有任何權限。
顯然,第二,三,四都是不安全的!
解決方法:如果你不需要遠程維護,刪除掉第二條,delete from user where host=“%”and user=“root”;或者給它加個強壯的密碼。刪除第三條和第四條。
(2)MSSQL數據庫的權限控制是基于master庫的syslogins表,擁有所有權限的帳號是sa,其他還有sysadmin,db_owner等不同權限帳號。由于SQL Server不能刪除Sa這個超級用戶,所以必須對這個帳號進行最強的保護,如使用非常強壯的密碼。新建立一個擁有與Sa一樣權限的超級用戶來管理數據庫,只有當其它系統管理員不可用或忘了密碼時才使用Sa。定期檢查所有登陸帳號,查看是否有不符合要求的密碼。
如下命令檢查是否有空口令帳號存在。
Use master
Select name,Password from syslogins where password is null
盡可能的刪除存儲擴展,防止本地用戶利用存儲擴展執行惡意命令。
如下命令刪除xp_cmdshell擴展。
use master
sp_dropextendedproc xp_cmdshell
2.2 目錄權限
(1)一般不會讓服務器主機上的其它用戶擁有對數據庫目錄文件的寫訪問權,但僅僅是讀訪問權也非常危險。由于像GRANT和SET PASSWORD這樣的查詢都被記錄到日志中去了,常規和更新日志文件包含了有關密碼的敏感查詢文本。如果一個攻擊具有對這些日志的讀訪問權,那么他只要在日志文件中查找GRANT或PASSWORD這樣的敏感單詞,就很容易找到密碼的明文。要消除這些安全漏洞,就要安排數據庫目錄及其中所有文件和目錄的所有權。
MySQL默認安裝到c:\mysql,c盤默認everyone有讀取和運行權限,由于權限的繼承性,everyone對c:\mysql也有讀取和運行權限,如圖2所示,顯然這是不安全的。
圖2 windows2003默認目錄用戶及權限
解決方法:把mysql目錄文件改為只有某個管理員賬戶(如windows下的adminis-trator賬戶)可讀寫。
(2)MSSQL也是安裝到c盤,由于存取控制問題,最好安裝到d盤等非系統盤進行嚴格的權限控制。而且,由于MSSQL數據庫與系統結合非常緊密,系統管理員在沒有數據庫密碼的情況下也可以通過選擇windows驗證來操作數據庫。因此,普通用戶有可能通過系統漏洞提升自己的權限,對數據庫進行破壞。
解決辦法:除了嚴格的存取限制外,還要定期查看SQL Server日志檢查是否有可疑的登錄事件發生。
對于MSSQL的安全是和windows系統安全緊密結合的,操作系統中帳戶設置越多,安全性就越差。因此網絡服務器只允許一個指定系統管理員進行管理是至關重要的。
具體要遵循如下原則:
①將唯一的系統管理員Administrator重命名,改為一個不易猜出的長名字,從而為攻擊增加一層障礙。
②將Guest帳號禁用,同時重命名為一個復雜的名字,增加口令。因為guest帳號不能被刪除只能改名。有的黑客工具可以利用guest賬號的弱點,將帳號權限從一般用戶提升到管理員權限,從而破壞系統。
③給系統管理員帳號一個復雜的口令,長度最少在8位以上,且必須同時包含字母、數字、特殊字符。其次不要使用熟悉的單詞、熟悉的鍵盤順序、熟悉的數字等。因為口令是黑客攻擊的重點,口令一旦被突破也就無任何系統安全可言了,而這往往是不少網管最易忽視的地方。
④口令必須定期更改,且最好記在心里,除此以外不要在任何地方做記錄。
⑤針對密碼破譯,采用Windows Server 2003提供的賬號鎖定功能,設定登錄最大允許的出錯次數,一旦登錄次數超過設定次數,系統會自動鎖定賬號,這樣致使密碼破譯無法進行。另外,如果在日志審核中發現某個帳號被連續嘗試,則必須立刻更改此帳號(包括用戶名和口令)。
2.3 服務器漏洞探測
(1)MySQL安全漏洞
例1:MySQL CREATE TABLE調用繞過訪問限制漏洞。
漏洞描述:CVE ID:CVE-2008-7247
當數據主目錄包含有到不同文件系統的符號鏈接時,MySQL的ql/sql_table.cc允許通過認證的遠程攻擊者通過以特殊DATA DIRECTORY或INDEX DIRECTORY參數調用CREATE TABLE繞過預期的訪問限制,執行各種非授權操作。
解決方法:下載廠商補丁http:///commits/59711
例2:MySQL SELECT語句(下轉第35頁)(上接第24頁)處理拒絕服務漏洞。
MySQL的mysqld守護程序沒有正確地處理在執行某些帶有子查詢的SELECT語句期間所產生的錯誤,在執行使用GeomFromWKB函數的語句期間沒有保留某些null_value標記,這允許通過認證的遠程攻擊者通過提交特制語句導致守護程序崩潰。
目前廠商已經了升級補丁以修復這個安全問題,到廠商的主頁下載:
http:///commits/88409
http:///commits/87482
(2)默認的情況下,MSSQL則會打開TCP的1433端口監聽
雖然MSSQL可以人為的改變監聽端口,但是通過微軟未公開的1434端口的UDP探測可以很容易知道MSSQL使用的是什么TCP/IP端口。往UDP1434端口發送一個1個字節的內容為02的數據包,被探測的系統則會返回安裝的MSSQL服務信息,這些信息包括:主機名稱、實例名稱、版本、管道名稱以及使用的端口等。這個端口是微軟自己使用,而且不象默認的1433端口那樣可以改變,1434是不能改變的。由于利用了UDP端口,一般的過濾是很難防范的。
解決辦法:安裝防火墻,或者利用Windows 2003系統的IPSEC對網絡連接進行IP限制,實現IP數據包的安全性。對IP連接進行限制,只保證自己的IP能夠訪問,拒絕其他IP進行的端口連接,把來自網絡上的安全威脅進行有效的控制。重要的是,還要對端口作過濾,包括大部分的TCP和UDP端口,因為僅僅做IP限制的話,有可能惡意攻擊者先攻擊被數據庫服務器信任的主機,控制之后作為跳板對數據庫服務器進行攻擊。
2.4 密碼竊聽
在單機環境下,基于用戶口令本身的保密性(與口令長度、復雜性等有關),可以在一定程度上防止其他用戶進入系統。但在網絡環境下,存在另外一種威脅:攻擊者可通過竊聽通信信道或進行網絡窺探的方法,在口令的明文傳輸過程中獲得用戶口令,使得這種身份認證方法變得極不安全。
MySQL和MSSQL系統客戶與服務器構架的一個重要問題就是通過網絡傳送數據時的安全問題。如果客戶與服務器間的交互以純文本形式發生,黑客就可能“嗅出”被傳送的數據包,從而獲得機密信息。
解決方法:可以通過激活MySQL和MSSQL系統配置中的SSL,或應用一個OpenSSH這樣的安全應用來為傳送的數據建立一個安全的加密“通道”,以關閉這一漏洞。以這種形式加密客戶與服務器連接可使未授權用戶極難查閱往來的數據。另外的辦法就是將口令加密傳輸,現在有多種加密技術,常用的是單向函數加密技術,如在系統中使用MD5算法來實現口令的加密存儲與傳輸。
3.總結
網站后臺數據庫的安全分析,目的就是保證企業內部客戶信息等數據的安全和企業網站的正常運行。從上面的安全分析結果來看,網站后臺數據庫的安全依賴于良好的安全管理和有效的安全策略。實際上數據庫的安全是一個十分復雜的工程,這里只體現了其中的幾個側面,更精深的安全管理,有待于我們在實踐和應用中不斷地深入研究。
參考文獻
篇4
【關鍵詞】在線監測系統;MySQL數據庫;C++builder
1.引言
對于在線監測儀來說,通常都是長時間連續運行的,數據量一般都巨大,并且需要在過程控制中實時修改運行參數,如何管理數據文件,運行條件參數和相關信息等就顯得尤為重要。這需要借助專門的數據庫來才能有效的管理。
近20年來,數據庫技術不斷發展,至今已經有很多成熟的商品化的數據庫管理系統(DBMS),例如:SQL Server、Oracle和Access等,它們的應用越來越廣泛,但對用戶來說還存在不足之處。(a)SQL Server:SQL驗證的登陸只對特定的服務器有效,也就是說,在一個多服務器的環境中管理比較困難;對于每一個數據庫,必須分別地為其設定管理權限;移植性較差,不能跨平臺移植;價格也不便宜;(b)Oracle:價格昂貴,服務費用也比較高;對硬件要求也比較高,使得整體投入非常高;(c)Access:主要用于單機桌面小型數據庫管理系統,屬于Local DBMS,難以支持大型應用;速度比較慢,功能還不夠完善。
目前,采用開源數據庫已開始成為一種潮流,如許多小型、中型或大型網站數據庫服務器都選擇MySQL數據庫。MySQL是一個精巧的SQL數據庫管理系統,以操作簡便著稱。由于其強大的功能、豐富的應用程序接口及精巧的系統結構設計,在基于數據庫的應用軟件開發中得到了廣泛的應用。MySQL具有下述優勢;(a)是目前運行速度最快的SQL語言數據庫;(b)多樣的數據類型和超大的容量可以方便完整地保存反映設備狀態的各種數據;(c)支持多平臺,可以在不同的操作系統下進行數據的準確移植;(d)可以免費獲得,可以有效降低成本。
本文中在線監測系統硬件平臺采用PC/104,具體如下:PC/104嵌入式主板采用SBC-4571(北京集智達公司),其是嵌入式Vortex86 CPU模塊,帶4串口,2個USB,支持CRT/LCD/音頻/網絡,板載128MB DRAM內存,1個增強IDE接口,顯示屏采用元太 6.4"LCD顯示屏。PC/104主板外加PC/104的I/O卡,就能方便的實現在線監測系統的控制中心。在線監測系統的軟件平臺為當前流行的Windows 2000操作系統上,采用MySQL數據庫作為在線監測系統的數據庫,應用軟件在集成開發環境C++builder 6.0上開發。在此平臺上研究在線設備的應用程序與MySQL數據庫的連接、更新、插入,及數據庫中關鍵字段的動態實時顯示技術。本設計采用的MySQL版本為mysql-5.0.37-win32及其在windows下的驅動為mysql-connector-odbc-3.51.14-win32。下面從MySQL在線監測數據庫的設計、C++ builder與MySQL數據庫的ODBC連接,應用程序的設計三方面來論述。
2.MySQL在線監測數據庫的設計
本設計是為了研究MySQL數據庫在在線監測系統中應用的可行性,及關鍵技術的開發與研究。因此設計的onlinebase數據庫就相對簡單, 只包含一張反映在線設備運行結果的results的表。表results包括關鍵字段“id”、反映在線監測指標值的int類型字段“value”、反映在線監測的實時條件的int類型字段“conditon” 和在線檢測指標時的備注字段“remark” 等4各字段。創建數據庫onlinebase、數據表results后,可以通過命令desc results來查看表的具體描述,如圖1所示。
3.C++ builder與MySQL數據庫的ODBC連接
C++builder不能直接訪問MySQL數據庫,但可以通過ODBC來實現。因為ODBC屏蔽了各種數據庫的差異,安裝了MySQL數據庫的ODBC驅動程序后,就可以通過ODBC對MySQL數據庫進行操作。
創建ODBC源實際上就是一個寫操作系統注冊表的過程,可以在應用程序中實現,但為了簡單方便,還是通過在操作系統中“控制面板\性能和維護\管理工具\數據源(ODBC)中創建。選擇添加用戶DSN,然后選擇MySQL ODBC 3.51 Driver的數據源驅動,點擊完成,出現圖2的對話框。
在圖2所示對話框中,在“Data Source Name”編輯框中輸入onlineodbc,設置了ODBC數據源的名;在“description”編輯框中輸入對DSN的說明;數據在“server”編輯框中輸入local,設置為本地服務器;然后設置User和Password,這里以root用戶訪問,并輸入root用戶的密碼;最后選擇onlinebase作為數據源的數據庫。點擊下面的“Test”按鈕可以測試通過ODBC數據源連接所選數據庫是否成功。最后點擊“ok”按鈕,返回ODBC源數據管理器,如圖3所示,就可以發現新增加的onlineodbc數據源。
圖1 創建results表,
并查看results表的結構
圖 2 創建onlinebase數據庫的ODBC源
圖3 創建onlieodbc數據源后
的ODBC數據源管理器窗口
4.應用程序的設計
C++builder6上開發的應用演示程序的功能是主要是:與MySQL數據庫onlinebase的連接,并將數據表results在人機界面上動態顯示;在線監測指標value字段數值也在曲線上的實時動態顯示;可以在人機界面上手動添加記錄,刪除記錄。最重要的是要模擬在線監測系統,每隔一段時間寫一條results表中的記錄,能在相應的顯示表中和曲線中實時更新,動態顯示。最終的應用程序運行界面如圖4所示。
圖4 應用程序與onlinebase數據庫
連接后,運行的界面
(1)手動添加記錄的實現
通過下列語句,可以在表results最后添加一條編輯框EdtRemark、EdtValue、EdtConditon中輸入正確格式的記錄。
Table1->Append();
Table1->FieldValues["id"] = nRecordID ;
Table1->FieldValues["remark"] = EdtRemark->Text ;
Table1->FieldValues["value"] = EdtValue->Text.ToInt() ;
Table1->FieldValues["conditon"] = EdtConditon->Text.ToInt() ;
添加記錄后,剛增加的value字段內容也相應顯示在Chart1上,具體實現語句如下:
double TempD = this->Chart1->Series[0]->XValues->Value[1] -
this->Chart1->Series[0]->XValues->Value[0] ;
this->Chart1->Series[0]->Delete(0) ;
Chart1->Series[0]->AddXY(this->Chart1->Series[0]->XValues->Last()+TempD,
this->Table1->FieldValues["value"],
this->Table1->FieldValues["id"],
clBlue ) ;
(2)動態繪制數據圖表
為了模擬在線監測,實現了模擬動態監測的功能。首先從在組件模板的System標簽頁下拖動Timer1:TTimer組件到Form1上,在Object inspector中設置Timer1的Enabled屬性為false,Interval屬性為2000。
然后在Timer1中的OnTimer事件中先產生一個三角波,產生三角波的代碼如下:
// 產生三角波波形
iCount = iCount % iPeriod ;
if( iCount
iValue = 10 * iCount ;
}else{
iValue = 10 * ( iPeriod - iCount ) ;
}
iCount = iCount + 1 ;
而后添加增加記錄的代碼,如下:
Table1->Append() ;
Table1->FieldValues["id"] = nRecordID ;
Table1->FieldValues[“remark”] = “正?!?;
Table1->FieldValues["value"] = iValue ;
Table1->FieldValues["conditon"] = 20 ;
最后添加實時顯示的代碼。這樣只要在Auto按鈕OnClick事件中使用一條 Timer1->Enabled = true; 語句就可以開始自動每隔2s增加一條記錄,并實時顯示value字段的值。圖4 Chart1中顯示的前兩個三角形就是模擬在線監測顯示的結果。
5.結論
本文在PC/104系統上的構建在線監測系統,軟件平臺采用Windows2000操作系統,在C++Build6.0環境下開發的應用軟件借助MySQL數據庫不僅可以在線顯示監測數據和也可以從數據庫中顯示先關歷史數據,軟件界面友好,操作方便,運行穩定,性價比高。
參考文獻
[1] Russell J.T Dyer.MYSQL 核心技術手冊[M].李,李東梅.譯.2 版.北京:機械工業出版社,2009:442-470.
[2]王軍.Ian Gilfillan《MySQL4從入門到精通》[M].北京:電子工業出版社,2003.
[3]陸衛忠等.C++Builder 6程序設計教程(第二版)[M].科學出版社,2011.
作者簡介:
毛成光(1990—),男,大學本科,現就讀于溫州醫學院信息與工程學院生物醫學工程專業。
篇5
摘要:Moodle平臺作為一個優秀的開放式網絡課程管理系統,可以方便地用來構建網絡課程。本文主要論述了Moodle課程遷移到新的服務器后,由于服務器IP地址的改變而造成課程資源中部分鏈接失效的問題,分析了問題產生的原因,并找出了解決方案。
關鍵詞:Moodle;課程;Mysql;遷移
中圖分類號:G642
文獻標識碼:A
Moodle是Modular Object-Oriented Dynamic Learning Environment(模塊化面向對象的動態學習環境)的縮寫,是專門針對廣大教師在信息化環境中設計、管理、實施和評價自己的課程與教學而開發的課程管理系統。Moodle自誕生之日起就以自由軟件的形式出現,遵循GPL(GNU Public License)協議,這使它充滿了無窮的活力,吸引了一大批開發者和使用者,目前主流版本是1.9版。
1Moodle數據遷移中存在的問題
Moodle可以運行在Windows環境下,首次使用需要安裝,安裝成功后,系統會生成一個名為config.php的文件,內含服務器的配置信息。如果要把Moodle整體遷移到另外一臺服務器上,只要拷貝整個Moodle文件夾到新服務器上,并把config.php文件中wwwroot項對應的IP地址改為新服務器的IP地址,就可以了。
教師在使用Moodle建設課程資源的時候,往往用一臺計算機作為服務器添加教學活動和課程資源,完成網絡課程的制作。在這些課程資源建設完成后,若要遷移到另外一臺服務器上,課程資源中的有些內容可以正常顯示,但是有些圖片或文件可能會因為鏈接無效而導致課程資源無法使用,這些問題可用通過修改Mysql數據庫中的數據予以解決。
2原因分析
Moodle中可以添加多種資源,主要包括編寫文本頁、編寫網頁、鏈接到文件或站點、顯示一個目錄、部署IMS包和插入標簽等,不同類型的資源在Mysql數據庫對應表中的字段類型和長度等不同。表1中以顯示一個圖片為例,列出了使用“鏈接到文件”顯示圖片和使用“編寫網頁”顯示一個嵌入式圖片的區別,這兩條記錄都是存儲在表mdl_resource中。
由表1可見,通過“鏈接到文件”所鏈接的圖片,保存在reference字段中,保存的僅是文件名,是一種相對路徑的存儲,沒有固定地和服務器IP地址對應,只要相對位置的圖片還存在,在整個Moodle課程拷貝到其他服務器上時,仍然會正常顯示;而通過“編寫網頁”在網頁中嵌入圖片,是在alltext字段中存儲了該網頁的html語句,其中的211.87.171.227是創建該網頁時所使用服務器的IP地址,alltext字段中的內容不會因為服務器IP地址的改變而改變,該圖片將因找不到IP地址所指向的文件而無法顯示。
除了圖片文件外,其他類型的文件也都存在這種相對位置引用和使用IP地址進行引用的問題。而“添加活動”在Mysql中的存儲方式和資源的存儲方式類似,只不過不同的活動存儲在不同的表中。
3解決方案和步驟
Moodle平臺后臺數據庫可用Mysql,在數據庫管理方面,可以使用命令行,但是太多命令不利于記憶;可以借助于Mysql Administrator管理,但是在安裝和使用方面不是很方便。
PhpMyadmin 是一個以PHP為基礎,以Web-Base方式架構在網站服務器上的Mysql的數據庫管理工具,可以管理整個Mysql服務器,界面簡單友好,在Moodle中可以借助于PhpMyadmin進行數據庫的管理。
3.1在Moodle中添加PhpMyadmin
Moodle1.9版中不包含PhpMyadmin,可以從官方下載站點/下載,解壓后得到一個名為PhpMyadmin的文件夾,直接拷貝PhpMyadmin文件夾到..\server\moodle文件夾下。
3.2修改配置文件
進入..\PhpMyadmin\libraries目錄,打開config.default.php文件,找到以下各項,將其后的字符串進行修改,如下:
$cfg['PmaAbsoluteUri'] = '211.87.165.136';
//新服務器的IP地址
$cfg['Servers'][$i]['host'] = 'localhost';
//通常用默認
$cfg['Servers'][$i]['user'] = 'root';
// Mysql的默認用戶
$cfg['Servers'][$i]['password'] = '123456';
// 密碼須與設置Moodle時相對應
$cfg['DefaultLang'] = 'zh';
//選擇語言,zh代表簡體中文
3.3Mysql數據庫管理
打開IE瀏覽器,輸入 211.87.165.136/PhpMyadmin,211.87.165.136就是新服務器的IP地址,就可以用PhpMyadmin管理包括Moodle數據庫在內的Mysql數據庫,如圖1所示。
圖1 用PhpMyadmin管理Moodle數據庫
3.4修改資源的鏈接
為了能夠使課程資源在遷移到新服務器上之后能正常使用,需要修改相關表中的內容,把用文本形式(VARCHAR或MULTITEXT等類型)記錄的鏈接資源修改與新服務器相對應。Moodle數據庫共有200多張表,在課程資源建設完成以后,逐個表進行檢查和修改是不可行的,可以使用游標,用存儲過程自動逐條進行修改。
在Moodle數據庫中建立存儲過程P_ChangeIP,找出含有VARCHAR、MULTITEXT或TEXT類型的字段及其表名,定義一個游標,每次返回的結果是表名和其中的字段名,用CONCAT函數拼接字符串構建SQL語句,在Update命令中使用Replace進行更新,用新服務器的IP地址替換原服務器的IP地址。
存儲過程的代碼如下:
CREATE PROCEDURE P_ChangeIP( )
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tname,cname VARCHAR(64);
DECLARE cur1 CURSOR FOR
SELECT table_name,column_name
FROM information_schema.columns
where table_schema = "moodle" and
(data_type like "%varchar%" or data_ type like "%text%");
--information_schema是系統數據庫,通過它可獲取Moodle數據庫的表名、列名等信息
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO tname,cname;
IF NOT done THEN
set @sql_text:=concat("update ",tname, "set ",cname ," = replace(",cname,",
'211.87.171.227','211.87.165.136')");
prepare stmt from @sql_text;
execute stmt;
deallocate prepare stmt;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END
存儲過程定義完成后,使用CALL Moodle.P_ChangeIP( )命令執行之,就可以一次性完成對相關鏈接數據的修改了。
4結束語
作為一個正在不斷成長、日趨成熟的網絡教學平臺,Moodle的技術在不斷改進之中, 其技術改進需要使用者共同參與,進一步優化軟件功能,開發更多適合國情的教學模塊,為教學提供更好的技術支持。隨著功能的不斷完善,Moodle必將為學校的網絡課程資源建設提供強有力的支持,成為提升教學質量的有力工具。
參考文獻:
[1] 劉貫南,劉榮光,劉曉琴. 基于Moodle網絡課程的設計與實施探索[J]. 現代教育技術,2008(6).
[2] 曹效英,徐勤岸. 基于Moodle的網絡課程開發[J]. 軟件導刊,2008(4).
[3] 楊慧玲,張志潔. Moodle平臺在網絡教育資源建設中的應用[J]. 教育技術導刊,2007(8).
[4] 陳恒法,羅兵. 基于Moodle 教學輔助系統的應用實踐[J]. 中國教育信息化,2007(5).
Solution to Moodle Course Migration Based on Mysql Database
QIAO Xian-liang
(Qingdao Ocean Shipping Mariners College, Qingdao 266071,China )
篇6
關鍵詞PHPMySQLODBC
1.引言
在Internet應用中,將服務器端腳本技術和客戶端腳本技術結合起來可以制作出豐富多彩的頁面。CGI和ASP是比較流行的服務器端腳本技術。通常CGI在跨平臺的開發中扮演著主要角色,可以使用VB、C或Perl等來實現,用它們寫的CGI腳本是一個單獨的程序,而不是嵌在HTML文檔中再通過另一個程序解釋替換的,所以它是一種“非嵌入式”的服務器端腳本。另外,每一次修改CGI程序都必須重新將其編譯成執行文件,因此,這樣的編寫方式事實上是比較困難且沒有效率。ASP則是嵌入式的服務器端腳本,每一次修改腳本并不需要重新編譯成執行文件就可以直接執行,但ASP有一個致命的缺點:不具有跨平臺開發能力。目前ASP只能在Windows環境下運行,而無法在Internet上的Unix平臺下使用。在這種情況下PHP的問世,在WelCGI的領域里掀起了一場革命。
2.PHP介紹
PHP(PersonalHomePage)是一種跨平臺的服務器端嵌入式腳本語言。它最初是RasmusLerdorf于1994年開發的。早期的版本,提供了訪客留言本、訪客計數器等簡單功能。隨后,在第二版中增加了對mSQL的支持。自此奠定了PHP在動態網頁開發上的影響力,并迅速在Internet上流傳開來。截止1999年,已有超過十五萬個站點使用PHP。同時,PHP的源代碼完全公開,在OpenSource意識抬頭的今天,它更是這方面的中流砥柱,隨著新函數庫的不斷加入,使PHP無論在Unix或是Win32的平臺上都可以有更多新的功能。如今,PHP已發展至4.0版。在語法方面,PHP混合了C、Java、Perl以及PHP以前版本的優點。它相當于Script與CGI的結合語言,但是其執行將效率卻比CGI更好,程序編寫也比HTML更便利且更富有彈性,程序的安全性及保密性也比Script好。在函數支持方面,PHP幾乎覆蓋了Web應用的各個方面,其中最有特色的是數據庫函數,使用PHP完成一個含有數據庫功能的網頁非常簡單,而PHP支持的數據庫也非常豐富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。
3.訪問MySQL數據庫
MySQL是一個快速、健壯和易用,且支持多線程、多用戶的SQL數據庫服務器。雖然PHP通過ODBC支持幾乎所有的數據庫。但對于開發數據驅動的網站而言,選擇MySQL應該說是最佳組合,這不僅因為MySQL是免費的,更在于它具有許多同大型數據庫相媲美甚至超過它們的優良性能。PHP實現對MySQL數據庫的訪問有兩種方法:
1)利用PHP的數據庫函數連接
這里主要用到四個數據庫函數:
mysql_connect()建立與MySQL服務器的連接。
mysql_select_db():選擇MySQL服務器中的數據庫供以后的數據查詢操作query處理。mysql_query():送出query字符串以幫助MySQL做相關的處理或執行。
mysql_fetch_row():用來將查詢結果result單行移到數組變量中。數組的索引是數字
索引,第一個索引值是0。
2)通過ODBC連接
PHP通過ODBC連接MySQL數據庫主要用到四個函數:
Odbc_connect():用來同ODBC數據源建立連接。
Odbc_do():用來在建立連接之后執行數據庫查詢。
Odbc_result():用于取得當前記錄行中某個字段的值。
Odbc_fetch_row():用來把查詢結果保存到數組,每個數組元素對應一條記錄。
上述兩種方法在與數據庫建立連接的語法上,并沒有太大差別。不過在相比較之下,通過ODBC方式存取數據庫比PHP直接存取MySQL耗時間,但通過ODBC接口存取數據庫不必擔心使用何種數據庫,如Oracle,Informix,Sybase等。它們都支持ODBC接口,這樣可減少更換數據庫時需要更改程序的問題。圖1顯了PHP連接數據庫的兩種方法。
PHP
MySQL
MySQL
圖1PHP連接數據庫說明圖
4.一個應用實例
現在很多校園網站都提供成績查詢功能。PHP和MySQL數據庫相結合使用可以方便的實現此功能。首先建立數據庫Score及數據表Score。建表SQL語句如下:
CreattableScore(
Stu_novarchar(10)notnull,
namevarchar(10)notnull,
scoreltinyint(4),
score2tinyint(4),
PrimaryKey(stu_no)
);
1)通過PHP的數據庫函數訪問MySQL的代碼如下:
〈?php
print(“〈html〉〈head〉\n”);
print(“〈title〉成績查詢〈/title〉〈/head〉\n”);
print(“〈body〉〈cennter〉”);
print(“〈fontsize=6color=”ff0000〉您的成績如下〈/font〉”);
$comm=mysql_connect(“localhost”,“root”,"");
mysql_select_db(“Score”,$comm);
$str=“Select*FromScoreWherestu_no=’$pstu_no''''andname=’$pname''''”;
$reault=mysql_query($str,$comm);
print(“〈tablealign=center〉”);
$sqlrow=mysql_fetch_row($result));
print(“學號:$sqlrow[0]”);
print(“姓名:$sqlrow[1]”);
print(“成績1:$sqlrow[2]”);
print(“成績2:$sqlrow[3]”);
print(“〈/table〉〈body.〈/html〉”);
?〉
2)通過ODBC訪問MySQL數據庫的代碼如下(省略的代碼同上):
〈?php
…
$comm=odbc_connect(“Score”,"system","");
$str="Select*FromScoreWherename=’$pname’andstu_no=’$pstu_no’”;
$result=odbc_do($comm,$str);
…
while(odbc_fetch_row($result))
{
$pstu_no=odbc_result($result,"stu_no");
$pname=odbc_result($result,"name");
$score1=odbc_result($result,"score1");
$score2=odbc_result($result,"score2");
print(“學號:$pstu-no”);
print(“姓名:$pname”);
print(“成績1:$score1”);
print(“成績2:$score2”);
}
…?〉
5.結束語
對于Wed服務器端的開發,PHP是一種易開發、高效能的動態腳本編程語言。在未來的幾年內,PHP必將成為主流的腳本語言,并被Wed研究和開發人員熟悉和掌握。
參考文獻
篇7
隨著Internet的發展和普及,越來越多的單位和個人都建立了自己的網站,以便更好地進行各種信息交流或者宣傳自身,亦或者通過管理系統提高工作效率,邁入信息化、高效化的快節奏時代。Web開發人員比較青睞Wamp的開發環境,即WAMP(Windows+Apache+MySQL+PHP),是指是基于Windows 操作系統下,Apache作為 Web 服務器,MySQL 作為數據庫以及PHP(部分網站也使用 Perl 或 Python)作為服務器端腳本解釋器完美組合,也是目前較為廣泛使用的WEB 應用程序平臺。這其中MySQL數據庫作為網站運行更新的橋梁紐帶,起著舉足輕重的作用。
【關鍵詞】數據庫 MySQL 管理系統
那什么叫數據庫呢?可以理解為是存儲數據的倉庫。舉例來說:比如你的記錄本上有你的學生的學號、姓名、電話、家庭地址,這些記錄就是數據。把這些數據按照學號、姓名、電話、家庭住址存放在一個表里,再把這樣的表放到數據庫里供我們或者人查詢使用,這就是我們說的數據庫。如今:已經存在Oracle、SQL Server等諸多優秀的數據庫。同時,還有MySQL、PostgreSQL都是很優秀的開源數據庫。
MySQL是一個小型關系型數據庫管理系統,是一款非常優秀的自由軟件。由瑞典 MySQ LAB 公司開發,它之所以流行,是因為它有著自己獨特的優勢:體積小、速度快、總體擁有成本低,最重要的是代碼開源,共享。作為商業運行網站,為了降低網站總體成本而選擇這樣的數據庫當然是顯而易見的。
1 MySQL支持的語言---SQL
1.1 什么是SQL語言
結構化查詢語言(Structured Query Language,簡稱SQL)是一種介于關系代數與關系演算之間,并且使用范圍限定的形式化語言。它專門用于與關系數據庫管理系統進行數據交互,并且能夠完成數據查詢、數據操作、數據定義和數據控制四個方面的功能,是一種通用的、功能性強大的關系數據庫語言。
1.2 SQL語言的特點
(1)統一的語言。SQL語言可用于所有用戶的數據庫模型,包括系統管理員數據庫管理員應用程序開發人員及許多其他類型終端用戶。所有用SQL編寫的程序都是可以移植的。
(2)語言簡潔、易學易用。SQL語言用了九個動詞完成率數據定義(CREATE、DROP、ALTER)、數據查詢(SELECT)、數據操作(INSERT、UPDATE、DELETE)、數據控制(GTANT、REVOKE)的大部分功能.。
(3)高度非過程化。降低了數據庫使用的復雜度,也提高了數據的獨立性。
(4)SQL語言既可以交互式使用,也可以以嵌入形式使用
(5)面向集合的操作方式
(6)SQL語言支持關系數據庫三級模式結構。數據庫三級模式指:內模式對應于存儲文件,模式對應于基本表,外模式對應于視圖。
2 MySQL與其他數據庫
2.1 甲骨文的Oracle
Oracle數據庫是世界上第一個支持SQL語言的數據庫。主要應用于大型系統。隨著網格技術的發展和應用,Oracle公司推出以網格計算模型的關系型數據庫管理系統。盡可能以最低成本和最高的服務質量提供信息,它提供了企業網格計算所需的集群、工作負載管理、數據中心自動化、易用性。
2.2 IBM的DB2
DB2是IBM公司研制的一種關系型數據庫系統。主要應用于OS、Windows等平臺下。DB2提供了高層次的數據利用性,數據的完整性好。而且DB2的安全性高,具有很強的可恢復性。DB2數據庫主要用于大型系統當中。
2.3 開源的MySQL
MySQL數據庫是一個開放源代碼的數據庫。是由瑞典MySQLAB公司開發的。MySQL廣泛地應用于Internet上的中小型網站,針對不同客戶群提供Community Server、Enterprise Server和Embedded Server3種套件,體現了良好的伸縮能力。SQL Server 數據庫也是微軟公司開發的。SQL Server是基于客服機/服務器模式的大型數據庫管理系統,能夠支持大吞吐量的事務處理,能在網絡環境下進行數據的存取,能用于開發決策支持系統等軟件。
2.4 微軟的Access和SQL Server
Access 數據庫是微軟公司開發的小型數據庫。Access數據庫是Microsoft公司Office系列軟件之一,在程序設計概念上更加接近大型DBMS。
3 MySQL數據庫的價值
3.1 MySQL是開放源代碼
MySQL是源代碼可共享、開放的數據庫,任何人都可以獲取該數據庫的源代碼,基于此基礎進行二次開發,修正MYSQL的缺陷,完善數據庫代碼,是一款可自由運用的數據庫。
3.2 MySQL的跨平臺性
MYSQL可以在Windows系列的操作系統上運行,還能在MacOS、UNIX、Linux等操作系統上運行。
3.3 功能強大
MySQL 是一個真正的多用戶、多線程 SQL 數據庫服務器。MySQL 是以一個客戶機/服務器結構的實現,它由一個服務器守護程序 mysqld 和很多不同的客戶程序和庫組成。
總之,與其他的大型數據庫如 Oracle、DB2、SQL Server 等相比,MySQL 雖有不足之處,如規模小、功能有局限等,但是這并沒有澆滅Web開發人員對它的鐘愛熱情。因為對于一般的個人使用者和中小型企業來說,MySQL 提供的功能已經綽綽有余,目前互聯網上流行的網站構架平臺是 WAMP開發環境,MySQL 加 PHP 的結合在網際網路上的應用較常見,且獲得了“動態配對”(Dynamic Duo)的雅號,它的強大功能、靈活性、豐富的應用編程接口(API)以及精巧的系統結構,受到了廣大自由軟件愛好者甚至是商業軟件用戶的青睞,因而MySQL一躍成為了當今最流行的數據庫。
篇8
【關鍵詞】PHP MySQL B/S
【中圖分類號】 TP311 【文獻標識碼】A
Design of Library Bibliographic Recommendation System Based on PHP
Liu Xinxia
(Library of Nanjing University of Finances and Economics,Nanjing 210046,Jiangsu)
【Abstract】In order to expand the library service, make readers more convenient, more fully use of library resources, using Apache+PHP+MySQL to build a platform which given the current advanced network and mature PHP technology. Through the dynamic webpage making technology, developed a set based on Web and B/S bibliographic recommendation system. This paper mainly introduces that basic structure of the library bibliographic recommendation system, design of database, database on PHP data access and manipulation, and emphatically introduces the data import and Chinese garbled solution method which encountered in the system design.
【Key words】PHP MySQL B/S
1 引言
隨著信息技術在圖書館中的廣泛應用,通過互聯網進行信息傳播的數字化圖書館已經成為未來圖書館的發展方向。將館藏文獻資源書目數字化,直接通過圖書館網站進行書目信息閱讀是圖書館展現館藏特色、拓展讀者服務的一種高效率手段。
目前網站的開發主流平臺有LAMP(linux操作系統、Apache網絡服務器、MySQL數據庫、PHP編程語言),J2EE和“.NET”商業軟件。由于PHP和MYSQL具有免費、開源等多方面優點,因此受到廣大的Web自由軟件愛好者、特別是系統開發者的青睞。
2 圖書館書目推薦系統設計
2.1平臺環境搭建
PHP和MySQL是當今比較流行的開源代碼技術,基于PHP和MySQL構建的Web系統,具有穩定性高和可移植性強等優點。本系統設計采用Apache+PHP+MySQL搭建開發環境,實現動態網頁的。
使用phpMyAdmin管理MySQL。phpMyAdmin圖形化管理工具是一款使用PHP開發的B/S模式的MySQL客戶端軟件,通過phpMyAdmin完全可以對數據庫進行各種操作,如創建數據庫、數據表和生成MySQL數據庫腳本文件等,不必在命令提示符下通過命令實現,從而大大提高了程序開發效率。
2.2 圖書館書目推薦系統結構
該系統主要包括書目推薦的前臺頁面設計和后臺管理頁面設計。
前臺頁面也就是把圖書信息展現給讀者的頁面,具體有新書推薦、精品圖書推薦、借閱排行榜、冷門書推薦四個模塊,每本圖書都鏈接到OPAC系統,方便讀者檢索和閱讀相應圖書的詳細信息。后臺管理是給管理員進入添加、修改以及刪除圖書內容,動態、實時更新推薦的圖書信息。
2.2 數據庫設計
首先建立數據庫,庫表主要包括管理員信息、新書推薦、精品圖書推薦、借閱排行榜、冷門書推薦幾個數據表。
管理員信息表如表1所示。該表主要用來保存管理員登錄名稱(管理員ID)、密碼、提升為管理員的時間等。該表中的用戶只有在登錄成功后才可以修改自己的會員信息、查看其他會員的詳細信息并進行管理,如刪除現有會員、推薦會員等。
新書推薦、精品圖書推薦、借閱排行榜、冷門書推薦的圖書信息表類似,主要包括圖書的索書號、書名、作者、出版社、ISBN號等。
2.3 PHP對數據庫的數據操作
PHP對MySQL數據庫的數據訪問和操作比較簡易,包括連接數據庫,選擇數據庫,通過mysql_query()、mysql_fetch_array()等語句可以直接實現對數據庫數據的查找和獲取。
例如,下面一段代碼是對圖書信息數據的獲取顯示:
3 網站設計中遇到的問題和解決辦法
3.1書目推薦的數據導入數據庫的問題
由于書目推薦的具體信息是由圖書館采編部提供的EXCEL表,要將其導入到數據庫,而phpMyAdmin不能直接導入xls格式的數據,需要使用Access轉換為.mdb格式,再使用MySQL-Front軟件導入到MySQL。其方法和操作都很簡單快捷,也方便圖書館采編部提供數據。
3.2中文亂碼問題
PHP頁面編碼必須和數據庫連接編碼一致,否則就會出現亂碼。
(一)PHP頁面的編碼
使用 標簽設置頁面編碼 ,xxx可以為GB2312,GBK,UTF-8等,采用這種方式來告訴瀏覽器顯示這個頁面的時候采用什么編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管xxx是哪一種,瀏覽器采用的始終都是一種編碼。
header("content-type:text/html; charset=xxx"); 這個函數header()的作用是把括號里面的信息發到http標頭。https標頭是服務器以HTTP協議傳送HTML信息到瀏覽器前所送出的字串。meta標簽是屬于html信息的,而header()發送的內容先到達瀏覽器。加入一個php頁面既有header("content-type:text/html; charset=xxx"),又有,瀏覽器就只認前者http標頭而不認meta了。
(二)MySQL數據庫編碼
PHP 程序在查詢數據庫之前,首先執行 mysql_query(“SET NAMES ‘編碼’”); SET NAMES 顯示客戶端發送的 SQL 語句中使用什么字符集,不僅告訴服務器將從客戶端傳來的信息采用的字符集,它還為服務器發送回客戶端的結果指定了字符集。編碼和PHP編碼要一致,如果PHP編碼是GB2312,那么MySQL編碼就是GB2312,如果是UTF-8,那么MySQL編碼就是 UTF8,這樣插入或檢索數據時就不會出現亂碼了。
4 結論
本文利用現在發達的網絡和成熟的PHP技術,將圖書館最新訂購的圖書和館藏文獻資源經過精心篩選,通過圖書館網站將書目信息展現給讀者,是當前信息時代下宣傳圖書館的又一種方式,不僅有利于讀者更快捷、更方便地使用館藏資源,而且有利于促進館藏資源的開發和利用。
參考文獻:
[1]鄒天思,孫鵬.PHP從入門到精通[M].北京:清華大學出版社,2008.
[2]黃桂金,于永軍,唐有明.PHP+MySQL完全學習手冊[M].北京:清華大學出版社,2008.
[3]張旭東,陳華智,黃炳強.Dreamweaver8+PHP動態網站開發從入門到精通[M].北京:人民郵電出版社,2007.
[4]張軍偉.基于PHP的高校教學管理系統設計[J].計算機與現代化,2011(1):63-65.
[5]唐寶福,黃建敬.基于PHP的圖書館信息數據庫系統開發[J].龍巖學院學報,2007(3):133-135.
[6]孫星.淺談PHP技術[J].信息技術,2011(10):31-32.
[7]賈素來.使用PHP和MySQL開發動態網站[J].大眾科技,2011(3):14-15.
[8]朱海巖.PHP與MySQL Web應用平臺中文亂碼問題的研究[J].赤峰學院學報(自然科學版),2011(8):36-37.
[9]杜闖.PHP在動態網站開發中的優勢[J].電腦知識與技術,2010(13):3342-3344.
[10]余肖生,易.基于PHP的開發環境搭建與網站設計實現[J].重慶理工大學學報(自然科學版),2011(3):74-77.
劉新霞(1985-),女,碩士,南京財經大學圖書館
篇9
1.引言:目前動態網站設計技術主要有:利用Perl/C++/Delphi等開發的CGI,兩種有名的API-ISAPI/NSAPI,還有ColdFusion,以及最近幾年流行起來的3p技術-ASP,PHP,JSP(據Internet上有關網站統計約有近百種);ASP-AtiveServerPage,由微軟公司開發,是一個WEB服務器端的開發環境,主要采用腳本語言VBScript(或javascript/perl等)作為自己的開發語言,可用ODBC或直接驅動法訪問Window平臺的數據庫。PHP-PersonServerPage,是由Rasmus個人創立的一種跨平臺的服務器端的嵌入式腳本語言.它大量地借用C,Java和Perl語言的語法,并耦合PHP自己的特性,.是一種很有個性的網站開發語言,它支持目前絕大多數數據庫。JSP-JavaServerPage,是Sun公司推出的新一代站點開發語言,Sun公司除Java應用程序和JavaApplet之外,又創立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序開發,特別是有許多訪問數據庫的方法。在電子商務平臺設計中,主要需要解決"網站結構的設計","注冊界面","交易界面","后臺數據庫",以及"配套模塊"諸如購物/用戶/論壇/反饋/搜索/會話等設計;考慮篇幅,本文只給出統一的前臺界面及后臺數據庫的3p設計方法;可以說ASP,PHP,JSP與網絡數據庫的操作是電子商務網站平臺設計的堅強基石。
2.構建三種設計技術的運行環境
2.1構建ASP的運行環境:NT5.0Server,IIS5.0,ASP3.0。安裝Windows2000Server(NT5.0Server)時選擇IIS5.0有關選項。安裝完后ASP3.0便內嵌于IIS5.0中。測試ASP:啟動瀏覽器,在地址欄處輸入127.0.0.1:80/default.asp,若瀏覽到IIS服務器的ASP歡迎頁面,說明安裝成功
2.2構建PHP4的運行環境:NT5.0Server,Apache1.3.12php4.0安裝支持PHP的web服務器Apache1.3.12,將Apache服務器壓縮文件解壓縮,根據提示進行整個安裝過程,自己選擇安裝到目錄d:\apache下。安裝PHP4,將PHP4壓縮文件解壓縮到d:\php4即可,同時將其中的php.ini-dist文件拷貝到winnt目錄中,將文件更名為php.ini,打開該文件將其中extension_dir設置為:d:/php4,并加載擴展模塊:將文件中含有;extention=*.dll的各項前面的";"號去掉即可;修改設置Aphache服務器,用文本編輯器編輯目錄d:\aphache目錄下的子目錄conf下名為httpd.conf的文本文件,首先將"#ServerName*"這一行下加入"ServerName127.0.0.1/",其次將"Port80"改為"Port81(或其他與IIS5.0不沖突的端口)",再其次設置更改Apache虛擬目錄,將"Documentroot"d:/Apache/htdocs""改為Documentroot"d:/trade"(該目錄即是電子商務網站目錄,可用任意方法建立目錄trade),最后加入支持php4的如下語句:ScriptAlias/php4/"d:/php4/"AddTypeapplication/x-httpd-php.phpAddTypeapplication/x-httpd-php.phtmlActionapplication/x-httpd-php4"/php4/php.exe";測試php:完成上述步驟后,在d:\trade目錄下,用如何文本編輯器,生成擴展名為.php(或phtml)的文件test.php,在文件中輸入如下php代碼,存盤后,啟動Apache,接著你在瀏覽器中輸入:127.0.0.1:81/test.php,若看到php的版本和擴展模塊等信息,說明環境安裝設置成功。
2.3構建JSP的運行環境:NT5.0Server,Resin1.13,jdk1.3安裝Java編譯器jdk1.3:運行jdk1_3-win.exe,按照提示完成安裝即可,將其安裝在d:\java1.3目錄,也可安裝在其他目錄。設置系統環境參數:控制面板/系統/環境頁中選擇path參數加入d:\jdk1.3\bin;增加新的環境參數classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然后重新啟動計算機即可安裝支持JSP的web服務器Resin1.1.3,將RESIN-1.1.3.zip釋放為d:\Resin1.1.3即可。配置服務器端口,打開d:/resin1.1.3/conf/目錄下的resin.conf文件在
8080
標簽處將端口設置為82(在我的NT5.0上裝有三個服務器,這樣三個服務器的端口分別為IIS:80;Apache:81;Resin:82其實也可設置為其他互不沖突的端口號).測試JSP:啟動Resin服務器,啟動瀏覽器,在地址欄處輸入127.0.0.1:82/,若瀏覽到Resin服務器的JSP歡迎頁面,說明安裝成功
3生成三種格式的動態表單頁面為了通用,這里采用可能用到的表單對象為例,至于下面設計具體數據表用到的字段,只要轉成給出的表單域相應對象即可.
3.1用ASP動態生成與數據庫進行數據交流的操作表單:form.asp:生成表單域頭:生成普通文本:生成密碼文本:生成滾動文本:生成單選:生成復選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾
3.2用PHP動態生成與數據庫進行數據交流的操作表單:form.php生成表單域頭:"?>生成普通文本:"?>生成密碼文本:"?>生成滾動文本:"?>生成單選:"?>生成復選:"?>生成列表框:網絡數據庫Asp技術Php技術Jsp技術網站設計"?>生成提交按鈕"?>生成重填按鈕"?>生成表單域尾"?>
3.3用JSP動態生成與數據庫進行數據交流的操作表單form.jsp生成表單域頭:生成普通文本:生成密碼文本:生成滾動文本:生成單選:生成復選:生成列表框:生成提交按鈕生成重填按鈕生成表單域尾
4設計用于存儲商務網站交互數據的MySql數據庫
4.1啟動MySql數據庫服務器(MySql的安裝及ODBC驅動程序的安裝與設置請參閱相關書籍)可在NT5.0下用啟動服務法/NET命令法/命令窗口鍵入MySqld-shareware法,啟動MySql數據庫服務器,啟動數據庫服務器后,在d:\mysql\bin>提示符下鍵入mysql-h127.0.0.1-uroot即可出現mysql>提示符,從這開始即可進行對MySql數據庫的各種操作。若要退出可鍵入quit/exit,若要關閉數據庫服務器,可在d:\mysql\bin>提示符下鍵mysqladmin-urootshutdown4.2建立MySql數據庫在MySql數據庫的提示符mysql>鍵入Createdatabasetradedb;(或go)
4.2.建立MySql數據庫表這里以商務網站中常用的幾種數據表為例,主要用到的數據表和生成數據表的SQL代碼如下:(這里的數據表字段只要分別對應上述表單域對象即可實際操作,數據表統一用tablename表示)客戶登錄管理數據表CREATETABLEusers(IDintnotnullauto_increment,UserNamevarchar(30)notnull,Passwordvarchar(20)notnull)客戶信息數據表CREATETABLEusermessage(UserNamevarchar(30)notnull,Emailvarchar(80)notnull,Addressvarchar(120)notnull,Faxvarchar(40)null,Phonevarchar(40)notnull,Cerreycardvarchar(50)notnull)客戶定購商品數據表CREATETABLEcatalog(ProductIdintnotnull,Namevarchar(64)notnull,Pricefloat(6,2)notnull,Descriptiontextnull)
5設計處理表單數據的3p程序
5.1設計處理表單數據的ASP程序form_cl.asp建立與數據庫的連接:這里采用直接驅動法Setconn=Server.CreateObject("ADODB.Connection");conn.open"driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb"獲取表單提交的數據:data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk")data4=request("dxk");data5=request("fxk");data6=request("lbk")用SQL語句對數據庫進行操作查詢數據記錄:sql="select*fromtablename";setrs=conn.execute(sql)"增加數據記錄:sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''data1'''',''''data2'''',''''data3'''',''''data4'''',''''data5'''',''''data5'''')";setrs=conn.execute(sql)更改某條數據記錄:sql="updatetablenamesetdata1="request(ptwbk)",whereID="num";setrs=conn.execute(sql)刪除某條數據記錄:sql="deletefromtablenamewhereID="num";setrs=conn.execute(sql)將SQL語句處理的數據結果輸出Response.Write"
"Response.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Name&""NextResponse.Write"
"WhileNotrs.EOFResponse.Write""Fori=0tors.Fields.Count-1Response.WRITE""&rs.Fields(i).Value&""NextResponse.Write"
"rs.MoveNextWendResponse.Write"
"關閉數據庫:rs.close;conn.Close
5.2設計處理表單數據的PHP程序form_cl.php建立與數據庫的連接:這里采用PHP的MySql函數法(也可用ODBC函數法)$conn=odbc_connect("localhost","user","xxxxxx");選擇數據庫:mysql_select_db("tradedb","$conn");獲去表單提交的數據:$data1=$ptwbk;$data2=$mmwbk;$data3=$gdwbk;$data4=$dxk;$data5=$fxk;$data6=$lbk;用SQL語句對數據庫進行操作查詢數據記錄:$sql="select*fromtablename";$result=odbc_do($conn,$sql);增加數據記錄:$sql="insertintotablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk)values(''''$data1'''',''''$data2'''',''''$data3'''',''''$data4'''',''''$data5'''',''''$data6'''')";$result=odbc_do($conn,$sql);更改某條數據記錄:$sql="updatetablenameset$data1=ptwbkwhereID=num"$result=odbc_do($conn,$sql);刪除某條數據記錄:$sql="deletefromtablenamewhereID=num";$result=odbc_do($conn,$sql);將SQL語句處理的數據結果輸出odbc_result_all($result,"border=1");關閉數據庫:odbc_close($conn);
5.3設計處理表單數據的JSP程序form_cl.jsp建立與數據庫的連接:這里采用JDBC-ODBC橋生成JavaBean法創建一個JavaBean命名為conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目錄下,代碼如下:(限于篇幅這里沒按標準書寫,而采用不換行寫法,其他類同)packagetrade;importjava.sql.*;publicclassconndb{Stringurl="jdbc:inetdae:localhost";Stringlogin="user";Stringpassword="xxxxxx";StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";StringsConnStr="jdbc:odbc:Dsnmysql";Connectionconn=null;ResultSetrs=null;publicconndb(){try{Class.forName(sDBDriver);Connectionconn=DriverManager.getConnection(url,login,password);}catch(java.lang.ClassNotFoundExceptione){System.err.println("conndb():"+e.getMessage());}}Public/ResultSet/executeQuery(String/sql)/{rs=null;try{conn=DriverManager.getConnection(sConnStr);Statementstmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}returnrs;}}然后用javac編譯conndb.java生成與其同目錄的conndb.class文件,在form_cl.jsp文件中加入如下標簽即可建立與數據庫的連接獲去表單提交的數據:Stringdata1=request.getParameter("ptwbk");Stringdata2=request.getParameter("mmwbk")Stringdata3=request.getParameter("gdwbk")Stringdata4=request.getParameter("dxk")Stringdata5=request.getParameter("fxk")Stringdata5=request.getParameter("lbk")語句對數據庫進行操作查詢數據記錄:Stringsql="select*fromtablename";connbean.executeQuery(sql);增加數據記錄:Stringsql="insertintotablenamevalues(''''"+data1+"'''',''''"+data2+"'''',''''"+data3+"'''',''''"+data4+"''''+"'''',''''"+data5+"'''',''''"+data6+''''")";connbean.executeQuery(sql);更改某條數據記錄:Stringsql="updatetablenamesetdata1=''''"+ptwbk+"'''',data2=''''"+mmvbk+"'''',data3=''''"+gdwbk+"''''whereID=''''"+num+"''''";connbean.executeQuery(sql)刪除某條數據記錄:Stringsql="deletefromtablenamewhereID=''''"+num+"''''";connbean.executeQuery(sql);將SQL語句處理的數據結果輸出ResultSetrs=connbean.executeQuery(sql);While(rs.next()){out.print("
"+rs.getString("ptwbk")+"
");out.print("
"+rs.getString("mmvbk")+"
");out.print("
"+rs.getString("gdwbk")+"
");out.print("
"+rs.getString("dxk")+"
");out.print("
"+rs.getString("fxk")+"
");out.print("
"+rs.getString("lbk")+"
");}關閉數據庫:rs.close();
6三種電子商務網站設計技術綜述
6.1主要特性:可見下表設計技術運行平臺服務器開發程序擴展組件ASPWindows系列IISVbscript/Jscript/PerlActiveXPHPUnix系列,Novell,WindowsApache等許多服務器phpFunctionJSPUnix系列,Novell,WindowsResin等許多服務器JavaJavaBean
6.2連接數據庫的方法:通過上述操作可看出,本文采用了三種操作MySql數據庫的方法,Asp采用直接驅動法,Php采用MySql函數法,Jsp采用JDBC-ODBC/JavaBean法
6.3網站結構設計考慮篇幅,本文只給出了Widows平臺上,電子商務網站設計中的主要環節的代碼設計,對于Linux平臺、網站結構、各個功能模塊設計等論題,作者已經有兩篇這方面的論文在核心刊物上待發表,這里不便公開.
篇10
關鍵詞:信息技術;安全性;高可用性;數據庫
0引言
面金融市場的激烈競爭和信息技術的飛速發展,銀行的科技體系建設呈現了“數據集中化、業務綜合化、管理扁平化、決策科學化”的發展趨勢。與業務相關的后臺數據庫中的業務數據量也在成幾何量級增長。由于大型商業銀行內部業務模式種類繁多,交易流程復雜,需要根據不同的業務規則和數據特點,選取不同的數據庫。目前,在商業銀行信息系統體系中,涉及到的數據庫主要包括DB2、Oracle、SQL Server,部分系統還用到了MySql等開源數據庫。
1DB2數據庫
1.1DB2簡介
DB2全稱為IBM DB2,是美國IBM公司開發的一套關系型數據庫管理系統,它主要的運行環境為UNIX、Linux、z/OS,以及Windows服務器。DB2主要應用于大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境。DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平臺無關的基本功能和SQL命令。
1.2 DB2在銀行的應用
雖然銀行業中后臺信息系統數量眾多,但其主要工作是進行各種賬務交易管理,對于需要進行大量賬務處理和計算的銀行信息系統普遍采用DB2數據庫。銀行系統要求高穩定性、高可靠性和高安全性,Unix+DB2的組合對銀行的系統高要求滿足的較好。IBM提供的主機和數據庫的解決方案,在很多銀行都有成熟的案例。
對于大型的商業銀行,銀行系統每天處理的請求可能要上億次,DB2數據庫對海量數據的管理更是十分出色。作為世界上最快的數據庫之一,它可以在一天內完成9000多萬次文本搜索,且每次的響應時間都小于半秒。銀行信息系統中的服務器有很大一部分都是IBM的大型機和小型機,在數據庫層面,選擇IBM的DB2數據可以更好的發揮服務器和數據庫的優勢。
2 ORACLE數據庫
2.1 ORACLE簡介
Oracle是美國Oracle公司提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的C/S或B/S體系結構的數據庫之一。它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫,它實現了分布式處理功能。系統可移植性好、使用方便、功能強,適用于各類大、中、小、微機環境。它是一種高效率、可靠性好的適應高吞吐量的數據庫解決方案。
2.2 ORACLE在銀行的應用
Oracle可以支持Unix、Linux和Windows等主流操作系統,而且做為專業做數據庫起家的Oracle,配套開發了許多高可用組件,為大型的應用系統提供了成熟完備的數據庫高可用解決方案,如:Oracle RAC、GodenGate、Data Guard等。這些組件在銀行的信息系統中使用相當廣泛,比如網上銀行系統、手機銀行和各類臺帳管理系統等。
完善災備系統是銀行建設中至關重要的一項工作,Oracle公司提供數據庫級別的異地災備技術,這為銀行信息系統的異地多活提供了可行性。并且Oracle在數據庫的技術服務支持方面也相當完備,很多銀行并沒有技術能力很強的數據庫維護人員,Oracle可以提供多種層次的數據庫維保服務,為銀行系統的高效可靠的運行保駕護航。
隨著Oracle 12C的,Oracle在云計算和大數據方面的優勢也逐漸顯現,各大銀行都有海量的業務和客戶數據,如何利用其進行精準營銷已經成為各大銀行業務的新訴求。使用Oracle的最新產品,可以對客戶數據進行數據挖掘和大數據分析,為銀行業務部門提供強有力的支持。
3 SOL SERVER數據庫
SQL Server微軟公司推出的一種關系型數據庫系統。它是一個可擴展的、高性能的、為分布式客戶機/服務器計算所設計的數據庫管理系統,實現了與WindowsNT的有機結合,提供了基于事務的企業級信息管理系統方案。
SQL Server以其內置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的數據庫平臺。由于SQL Server只能在Windows平臺上運行,沒有絲毫的開放性,這就限制了它的應用范圍。Windows操作系統由于其自身的限制,每運行一段時間就需要重啟,這對需要提供7*24小時不停服務的銀行系統帶來極大的問題。SQL Server在銀行內部系統中應用較少,主要在一些由微軟公司提供的應用系統。
4 MYSQL數據庫
MySql是一種開放源代碼的關系型數據庫管理系統,MySql是一個真正的多用戶、多線程數據庫服務器。MySql雖然是免費的,但同Oracle,DB2等商業數據庫一樣,具有數據庫系統的通用性。
相較于DB2、Oracle和SQL Server數據庫,MySql數據庫更輕量級,對服務器資源要求低,但又能提供高并發和大事務處理能力。但是MySql官方并不能提供成熟的高可用解決方案,對于銀行端來說,更希望使用成熟的高可用產品,而且沒有很多的技術實力和精力去做二次開發和改進,所以MySql在銀行信息系統中使用的并不多。
現在有一些銀行在國家去IOE的號召下,開始嘗試在一些新興的互聯網金融產品中引用MySql數據庫,配合成熟的第三方高可用組件,也取得了不錯的效果。