一. 軟件下載
Mysql
下載版本:4.1.11
http://dev.mysql.com/downloads/mysql/4.1.html
JDBC驅(qū)動
下載版本:3.1.8
http://dev.mysql.com/downloads/connector/j/3.1.html
Mysql界面插件:mysql-front
下載版本鏡像:HongKong(我下回來安裝就是中文版了)
http://www.mysqlfront.de/download.html
二. 軟件安裝
打開下載的mysql安裝文件mysql-5.0.27-win32.zip,雙擊解壓縮,運行“setup.exe”,出現(xiàn)如下界面:

mysql安裝向?qū)樱?span lang="EN-US">“Next”繼續(xù)

選擇安裝類型,有“Typical(默認(rèn))”、“Complete(完全)”、“Custom(用戶自定義)”三個選項,我們選擇“Custom”,有更多的選項,也方便熟悉安裝過程

在“Developer Components(開發(fā)者部分)”上左鍵單擊,選擇“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下屬子部分內(nèi)容,全部安裝在本地硬盤上”。在上面的“MySQL Server(mysql服務(wù)器)”、“Client Programs(mysql客戶端程序)”、“Documentation(文檔)”也如此操作,以保證安裝所有文件。點選“Change...”,手動指定安裝目錄。

填上安裝目錄,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建議不要放在與操作系統(tǒng)同一分區(qū),這樣可以防止系統(tǒng)備份還原的時候,數(shù)據(jù)被清空。按“OK”繼續(xù)。

返回剛才的界面,按“Next”繼續(xù)。

確認(rèn)一下先前的設(shè)置,如果有誤,按“Back”返回重做。按“Install”開始安裝。

正在安裝中,請稍候,直到出現(xiàn)下面的界面

這里是詢問你是否要注冊一個mysql.com的賬號,或是使用已有的賬號登陸mysql.com,一般不需要了,點選“Skip Sign-Up”,按“Next”略過此步驟。

現(xiàn)在軟件安裝完成了,出現(xiàn)上面的界面,這里有一個很好的功能,mysql配置向?qū)?,不用向以前一樣,自己手動亂七八糟的配置my.ini了,將 “Configure the Mysql Server now”前面的勾打上,點“Finish”結(jié)束軟件的安裝并啟動mysql配置向?qū)А?

mysql配置向?qū)咏缑?,?span lang="EN-US">“Next”繼續(xù)。

選擇配置方式,“Detailed Configuration(手動精確配置)”、“Standard Configuration(標(biāo)準(zhǔn)配置)”,我們選擇“Detailed Configuration”,方便熟悉配置過程。

選擇服務(wù)器類型,“Developer Machine(開發(fā)測試類,mysql占用很少資源)”、“Server Machine(服務(wù)器類型,mysql占用較多資源)”、“Dedicated MySQL Server Machine(專門的數(shù)據(jù)庫服務(wù)器,mysql占用所有可用資源)”,大家根據(jù)自己的類型選擇了,一般選“Server Machine”,不會太少,也不會占滿。

選擇mysql數(shù)據(jù)庫的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服務(wù)器類型,專注于事務(wù)處理,一般)”、“Non-Transactional Database Only(非事務(wù)處理型,較簡單,主要做一些監(jiān)控、記數(shù)用,對MyISAM數(shù)據(jù)類型的支持僅限于non-transactional),隨自己的用途而選擇了,我這里選擇“Transactional Database Only”,按“Next”繼續(xù)。

對InnoDB Tablespace進行配置,就是為InnoDB 數(shù)據(jù)庫文件選擇一個存儲空間,如果修改了,要記住位置,重裝的時候要選擇一樣的地方,否則可能會造成數(shù)據(jù)庫損壞,當(dāng)然,對數(shù)據(jù)庫做個備份就沒問題了,這里不詳述。我這里沒有修改,使用用默認(rèn)位置,直接按“Next”繼續(xù)

選擇您的網(wǎng)站的一般mysql訪問量,同時連接的數(shù)目,“Decision Support(DSS)/OLAP(20個左右)”、“Online Transaction Processing(OLTP)(500個左右)”、“Manual Setting(手動設(shè)置,自己輸一個數(shù))”,我這里選“Online Transaction Processing(OLTP)”,自己的服務(wù)器,應(yīng)該夠用了,按“Next”繼續(xù)

是否啟用TCP/IP連接,設(shè)定端口,如果不啟用,就只能在自己的機器上訪問mysql數(shù)據(jù)庫了,我這里啟用,把前面的勾打上,Port Number:3306,在這個頁面上,您還可以選擇“啟用標(biāo)準(zhǔn)模式”(Enable Strict Mode),這樣MySQL就不會允許細(xì)小的語法錯誤。如果您還是個新手,我建議您取消標(biāo)準(zhǔn)模式以減少麻煩。但熟悉MySQL以后,盡量使用標(biāo)準(zhǔn)模式,因為它可以降低有害數(shù)據(jù)進入數(shù)據(jù)庫的可能性。按“Next”繼續(xù)

這個比較重要,就是對mysql默認(rèn)數(shù)據(jù)庫語言編碼進行設(shè)置,第一個是西文編碼,第二個是多字節(jié)的通用utf8編碼,都不是我們通用的編碼,這里選擇第三個,然后在Character Set那里選擇或填入“gbk”,當(dāng)然也可以用“gb2312”,區(qū)別就是gbk的字庫容量大,包括了gb2312的所有漢字,并且加上了繁體字、和其它亂七八糟的字——使用mysql的時候,在執(zhí)行數(shù)據(jù)操作命令之前運行一次“SET NAMES GBK;”(運行一次就行了,GBK可以替換為其它值,視這里的設(shè)置而定),就可以正常的使用漢字(或其它文字)了,否則不能正常顯示漢字。按 “Next”繼續(xù)。

選擇是否將mysql安裝為windows服務(wù),還可以指定Service Name(服務(wù)標(biāo)識名稱),是否將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我這里全部打上了勾,Service Name不變。按“Next”繼續(xù)。

這一步詢問是否要修改默認(rèn)root用戶(超級管理)的密碼(默認(rèn)為空),“New root password”如果要修改,就在此填入新密碼(如果是重裝,并且之前已經(jīng)設(shè)置了密碼,在這里更改密碼可能會出錯,請留空,并將“Modify Security Settings”前面的勾去掉,安裝配置完成后另行修改密碼),“Confirm(再輸一遍)”內(nèi)再填一次,防止輸錯。“Enable root access from remote machines(是否允許root用戶在其它的機器上登陸,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一個匿名用戶,匿名用戶可以連接數(shù)據(jù)庫,不能操作數(shù)據(jù),包括查詢)”,一般就不用勾了,設(shè)置完畢,按“Next”繼續(xù)。

確認(rèn)設(shè)置無誤,如果有誤,按“Back”返回檢查。按“Execute”使設(shè)置生效。

設(shè)置完畢,按“Finish”結(jié)束mysql的安裝與配置——這里有一個比較常見的錯誤,就是不能“Start service”,一般出現(xiàn)在以前有安裝mysql的服務(wù)器上,解決的辦法,先保證以前安裝的mysql服務(wù)器徹底卸載掉了;不行的話,檢查是否按上面一步所說,之前的密碼是否有修改,照上面的操作;如果依然不行,將mysql安裝目錄下的data文件夾備份,然后刪除,在安裝完成后,將安裝生成的 data文件夾刪除,備份的data文件夾移回來,再重啟mysql服務(wù)就可以了,這種情況下,可能需要將數(shù)據(jù)庫檢查一下,然后修復(fù)一次,防止數(shù)據(jù)出錯。
2.JDBC驅(qū)動:mysql-connector-java-3.1.8
這只是一個壓縮包,并不需要安裝,只要將其解壓,我么使用的是文件夾mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.
3. Mysql界面插件:mysql-front
這是一個安裝程序,按照提示安裝就可以了.
三. 環(huán)境配置
首先,我要說明的是我現(xiàn)在tomcat的安裝路徑是: D:\Program Files\Java\Tomcat;JDK的安裝路徑是:D:\Program Files\Java\j2sdk。
在這里,需要配置環(huán)境變量的是JDBC驅(qū)動.在配置前先要把剛才說到的mysql-connector-java-3.1.8-bin.jar本地硬盤 某處(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根據(jù)你放的地方,配置classpath,我的配置是這樣的:
D:\Program files\Java\j2sdk\lib\tools.jar;
D:\Program Files\Java\j2sdk\lib\mysql-connector-java-3.1.8-bin-g.jar;
D:\Program Files\Java\mysqlforjdbc\mysql-connector-java-3.1.8-bin.jar
配置這個的目的是讓你的java應(yīng)用程序找到連接mysql的驅(qū)動.
配置完環(huán)境變量后還有很重要一步就是為JSP連接數(shù)據(jù)庫配置驅(qū)動,這個其實很簡單,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夾里就行了,我在網(wǎng)上看了很多資料問了很多人,各種說法都有,我綜合了一下,為了保險,我都全做了,呵呵,反正就是拷一個 400K的文件而已,現(xiàn)列出要把mysql-connector-java-3.1.8-bin.jar拷進去的文件夾,如下:
D:\Program Files\Java\Tomcat\common\lib
D:\Program Files\Java\Tomcat\shared\lib
四. 數(shù)據(jù)庫的使用
Mysql安裝完畢以后,還有一些要注意的地方(推薦文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx
還有就是看mysql的官方中文文檔。。。。。。。。。。。
就象在文章提到的,mysql安裝好后最重要一樣就是要看數(shù)據(jù)庫有沒有作為系統(tǒng)服務(wù)啟動了,所以在大家進行數(shù)據(jù)庫操作前,應(yīng)要看看,在操作系統(tǒng)的開始->運行->輸入services.msc,確定你在安裝時你設(shè)置的關(guān)于mysql的那個服務(wù)已經(jīng)啟動,這樣你在操作數(shù)據(jù)庫時不會報連接不上的錯誤.
上面提到了一個較方便的mysql界面插件,但是這個界面是我在已經(jīng)開始使用mysql后才找到的,剛開始我是在dos下用命令行進行操作的.雖然那個 界面也可以進行建庫啊,設(shè)定權(quán)限等操作,但是,我覺得懂得在使用命令行也是一個很重要的技能,所以我先從命令行開始說,怎樣簡單使用mysql.到后面會 談及mysql-front的使用.
現(xiàn)在我想在mysql里建一個數(shù)據(jù)庫shujuku,以及在數(shù)據(jù)庫里建一個表biao.具體的命令如下(假設(shè)mysql我是剛安裝好的)
1. 進入dos狀態(tài)(記住命令行的要運行在mysql的安裝目錄下的bin目錄的)
2. 連接mysql
輸入:mysql –h localhost –u root –p
輸入在安裝時已設(shè)好的密碼,就近入了mysql的命令編輯界面了。
3. 使用mysql的基本命令(在mysql命令行編輯每輸入完命令后最后一定要有分號,不然會報錯)
顯示數(shù)據(jù)庫:show databases;
使用數(shù)據(jù)庫:use 數(shù)據(jù)庫名;
4.建庫
命令:create database shujuku;
5.為數(shù)據(jù)庫設(shè)置權(quán)限(用戶和密碼)
命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
當(dāng)你執(zhí)行完這個命令以后,只要你再以用戶名:test,密碼:123456登錄時你就只可以對shujuku這個數(shù)據(jù)庫操作,這樣避開使用root,對數(shù)據(jù)庫的安全有很大幫助.
6.建表
命令:create table biao(id int(8) primary key,name varchar(10));
剩下來的與標(biāo)準(zhǔn)sqsl命令基本上是一樣的,具體操作略
值得一提的是,你在命令行上輸入"?",就會有mysql命令的簡單幫助,如下:
呵呵,那樣,我們還可以知道退出,就是"exit",呵呵!
五. 關(guān)于mysql-front的使用
我找了好幾個mysql的界面工具,覺得最簡潔方便還是mysql-front,可惜的是要收費,不過還好有試用期,呵呵,可以先感受感受一下,最重要一點是mysql-front有簡體中文版的,英文不好的我用起來就舒服多了.下面簡單說說使用吧.
首先,安裝就不用說了,有向?qū)В液芎唵危惭b好后第一次運行時會跳出來一個要求添加對話的框,在這里你可以添加例如上面已經(jīng)設(shè)定好的shujuku,過程如下:
當(dāng)你在注冊的復(fù)選框里填上你在上面mysql設(shè)定好的用戶名和密碼后,在選擇數(shù)據(jù)庫框里就有shujuku 的數(shù)據(jù)庫了,選上,按確定.進入mysql-fron后,你就會看到下面的界面,這是你就可以進行操作了.
要說明的是,你還可以把root用戶也加進去,這要你在mysql-fron的界面上選設(shè)置->對話->新建,再按上面進行就可以,出了root你還可 以加入更多的用戶,方法還是一樣的,設(shè)置不同的用戶,是方便對不同數(shù)據(jù)庫進行管理,呵呵,root是權(quán)限最高的,可不要隨便讓別人使用你的root用戶, 保正你數(shù)據(jù)庫的安全.
六. JSP連接mysql
現(xiàn)在就是嘗試用jsp連接mysql了
我在eclipse里建了個test_mysql.jsp頁面,代碼如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
//驅(qū)動程序名
String driverName="com.mysql.jdbc.Driver";
//數(shù)據(jù)庫用戶名
String userName="cl41";
//密碼
String userPasswd="123456";
//數(shù)據(jù)庫名
String dbName="db";
//表名
String tableName="dbtest";
//聯(lián)結(jié)字符串
String url="jdbc:mysql:3306//localhost/"+dbName+";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url,userName,userPasswd);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//獲得數(shù)據(jù)結(jié)果集合
ResultSetMetaData rmeta = rs.getMetaData();
//確定數(shù)據(jù)集的列數(shù),亦字段數(shù)
int numColumns=rmeta.getColumnCount();
// 輸出每一個數(shù)據(jù)值
out.print("id");
out.print("|");
out.print("num");
out.print("<br>");
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
out.print("<br>");
out.print("數(shù)據(jù)庫操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
<出處: Saulzy的BLOG>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=678313
上面的沒成功用下面的
將mysql-connector-java-5.0.4-bin.jar放入C:\Program Files\Java\jdk1.5.0_09\jre\lib和C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib中,并設(shè)置環(huán)境變量classpath C:\Program Files\Java\jdk1.5.0_09\jre\lib\mysql-connector-java-5.0.4-bin.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\mysql-connector-java-5.0.4-bin.jar;
現(xiàn)在可以進行java和mysql數(shù)據(jù)庫的連接了
下面用一個簡單的例子來測試一下
在tomcat/webapps/下建一個文件夾mysqlManager,創(chuàng)建目錄mysqlManager/WEB-INF/classes
mysqlManager/WEB-INF/web.xml
在/mysqlManager/ 下新建index.jsp文件,內(nèi)容如下
/mysqlManager/index.jsp:
<?xml version="1.0" encoding="gbk" ?>
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<%@ page import="java.sql.*" %>
<%!
//這個函數(shù)用來獲取一個和數(shù)據(jù)庫的連接
Connection getConnection() throws SQLException{
String dbURL="jdbc:mysql://localhost/mysql";
String dbUser="root";
String dbPassword="851120";
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
return DriverManager.getConnection(dbURL,dbUser,dbPassword);
}
//判斷一個字符串是否為空
boolean isEmptyString(String str){
return str==null||str.length()==0||str.trim().length()==0;
}
//下面的函數(shù)使顯示的字符串為漢語
String convert(String str){
try{
return new String(str.getBytes("ISO-8859-1"),"gbk");
}catch(Exception e){
return null;
}
}
%>
<script type="text/javascript">
<!--
function checkValue(){
if(document.forms["main"].sql.value.length==0){
alert("請輸入要執(zhí)行的SQL語句");
document.forms["main"].sql.focus();
return false;
}else{
return true;
}
}
//-->
</script>
<html xmlns="<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>mysql數(shù)據(jù)庫管理系統(tǒng)</title>
</head>
<body>
<center>
<table width="80%" border="0">
<tr>請輸入要查詢的SQL語句</tr>
<tr>
<form action="index.jsp" name=main method="post" onsubmit="checkValue()">
<td>
<textarea name="sql" cols=80 rows=15></textarea>
</td>
<td valign="bottom">
<input type="submit" value="提交"/>
</td>
</form>
</tr>
</table>
<hr />
<%//接受用戶的輸入顯示查詢結(jié)果 %>
<%
//獲取用戶輸入的SQL語句
String sql=request.getParameter("sql");
//out.print("qwe");
if(!isEmptyString(sql)){
%>
<p>您所輸入的SQL語句是<%=sql %></p>
<%
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
//out.print("qwe");
try{
//out.print("qwe");
con=getConnection();
//out.print("qwe");
stmt=con.createStatement();
//stmt.execute(sql);
if(stmt.execute(sql)){
//執(zhí)行結(jié)果是ResultSet
rs=stmt.getResultSet();
//獲取rs自身的描述信息
ResultSetMetaData rsmd=rs.getMetaData();
//獲取rs的列數(shù)目
int colNum=rsmd.getColumnCount();
%>
<p>您的查詢結(jié)果為:</p>
<table border="1">
<tr>
<%
for(int i=1;i<=colNum;i++){
%>
<td><%=rsmd.getColumnName(i) %></td>
<%
}
%>
</tr>
<%
while(rs.next()){
%>
<tr>
<%
for(int j=1;j<=colNum;j++){
%>
<td><%=convert(rs.getString(j)) %></td>
<%
}
}
%>
</tr>
</table>
<%
}else{
int colNum=stmt.getUpdateCount();
%>
<p>您更新了<%=colNum %>列!</p>
<%
}
}catch(SQLException e){
%>
<p>發(fā)生錯誤,請檢查數(shù)據(jù)庫的連接</p>
<%
}finally{
try{
if(rs!=null)
rs.close();
}catch(Exception e){
}
try{
if(stmt!=null)
stmt.close();
}catch(Exception e){
}
try{
if(con!=null)
con.close();
}catch(Exception e){
}
}
}
%>
</center>
</body>
</html>
在瀏覽其中運行http://localhost:8080/mysqlManager/index.jsp
在輸入框中輸入sql查詢語句 select * from user 會產(chǎn)生查詢結(jié)果
如有疑問可以給我發(fā)信qiudawei115@sohu.com