一. 軟件下載
Mysql
下載版本:4.1.11
http://dev.mysql.com/downloads/mysql/4.1.html
JDBC驅動
下載版本: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”,出現如下界面:

mysql安裝向導啟動,按“Next”繼續

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

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

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

返回剛才的界面,按“Next”繼續。

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

正在安裝中,請稍候,直到出現下面的界面

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

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

mysql配置向導啟動界面,按“Next”繼續。

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

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

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

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

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

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

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

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

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

確認設置無誤,如果有誤,按“Back”返回檢查。按“Execute”使設置生效。

設置完畢,按“Finish”結束mysql的安裝與配置——這里有一個比較常見的錯誤,就是不能“Start service”,一般出現在以前有安裝mysql的服務器上,解決的辦法,先保證以前安裝的mysql服務器徹底卸載掉了;不行的話,檢查是否按上面一步所說,之前的密碼是否有修改,照上面的操作;如果依然不行,將mysql安裝目錄下的data文件夾備份,然后刪除,在安裝完成后,將安裝生成的 data文件夾刪除,備份的data文件夾移回來,再重啟mysql服務就可以了,這種情況下,可能需要將數據庫檢查一下,然后修復一次,防止數據出錯。
2.JDBC驅動:mysql-connector-java-3.1.8
這只是一個壓縮包,并不需要安裝,只要將其解壓,我么使用的是文件夾mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.
3. Mysql界面插件:mysql-front
這是一個安裝程序,按照提示安裝就可以了.
三. 環境配置
首先,我要說明的是我現在tomcat的安裝路徑是: D:\Program Files\Java\Tomcat;JDK的安裝路徑是:D:\Program Files\Java\j2sdk。
在這里,需要配置環境變量的是JDBC驅動.在配置前先要把剛才說到的mysql-connector-java-3.1.8-bin.jar本地硬盤 某處(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根據你放的地方,配置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應用程序找到連接mysql的驅動.
配置完環境變量后還有很重要一步就是為JSP連接數據庫配置驅動,這個其實很簡單,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夾里就行了,我在網上看了很多資料問了很多人,各種說法都有,我綜合了一下,為了保險,我都全做了,呵呵,反正就是拷一個 400K的文件而已,現列出要把mysql-connector-java-3.1.8-bin.jar拷進去的文件夾,如下:
D:\Program Files\Java\Tomcat\common\lib
D:\Program Files\Java\Tomcat\shared\lib
四. 數據庫的使用
Mysql安裝完畢以后,還有一些要注意的地方(推薦文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx
還有就是看mysql的官方中文文檔。。。。。。。。。。。
就象在文章提到的,mysql安裝好后最重要一樣就是要看數據庫有沒有作為系統服務啟動了,所以在大家進行數據庫操作前,應要看看,在操作系統的開始->運行->輸入services.msc,確定你在安裝時你設置的關于mysql的那個服務已經啟動,這樣你在操作數據庫時不會報連接不上的錯誤.
上面提到了一個較方便的mysql界面插件,但是這個界面是我在已經開始使用mysql后才找到的,剛開始我是在dos下用命令行進行操作的.雖然那個 界面也可以進行建庫啊,設定權限等操作,但是,我覺得懂得在使用命令行也是一個很重要的技能,所以我先從命令行開始說,怎樣簡單使用mysql.到后面會 談及mysql-front的使用.
現在我想在mysql里建一個數據庫shujuku,以及在數據庫里建一個表biao.具體的命令如下(假設mysql我是剛安裝好的)
1. 進入dos狀態(記住命令行的要運行在mysql的安裝目錄下的bin目錄的)
2. 連接mysql
輸入:mysql –h localhost –u root –p
輸入在安裝時已設好的密碼,就近入了mysql的命令編輯界面了。
3. 使用mysql的基本命令(在mysql命令行編輯每輸入完命令后最后一定要有分號,不然會報錯)
顯示數據庫:show databases;
使用數據庫:use 數據庫名;
4.建庫
命令:create database shujuku;
5.為數據庫設置權限(用戶和密碼)
命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
當你執行完這個命令以后,只要你再以用戶名:test,密碼:123456登錄時你就只可以對shujuku這個數據庫操作,這樣避開使用root,對數據庫的安全有很大幫助.
6.建表
命令:create table biao(id int(8) primary key,name varchar(10));
剩下來的與標準sqsl命令基本上是一樣的,具體操作略
值得一提的是,你在命令行上輸入"?",就會有mysql命令的簡單幫助,如下:
呵呵,那樣,我們還可以知道退出,就是"exit",呵呵!
五. 關于mysql-front的使用
我找了好幾個mysql的界面工具,覺得最簡潔方便還是mysql-front,可惜的是要收費,不過還好有試用期,呵呵,可以先感受感受一下,最重要一點是mysql-front有簡體中文版的,英文不好的我用起來就舒服多了.下面簡單說說使用吧.
首先,安裝就不用說了,有向導,而且很簡單.安裝好后第一次運行時會跳出來一個要求添加對話的框,在這里你可以添加例如上面已經設定好的shujuku,過程如下:
當你在注冊的復選框里填上你在上面mysql設定好的用戶名和密碼后,在選擇數據庫框里就有shujuku 的數據庫了,選上,按確定.進入mysql-fron后,你就會看到下面的界面,這是你就可以進行操作了.
要說明的是,你還可以把root用戶也加進去,這要你在mysql-fron的界面上選設置->對話->新建,再按上面進行就可以,出了root你還可 以加入更多的用戶,方法還是一樣的,設置不同的用戶,是方便對不同數據庫進行管理,呵呵,root是權限最高的,可不要隨便讓別人使用你的root用戶, 保正你數據庫的安全.
六. JSP連接mysql
現在就是嘗試用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.*" %>
<%
//驅動程序名
String driverName="com.mysql.jdbc.Driver";
//數據庫用戶名
String userName="cl41";
//密碼
String userPasswd="123456";
//數據庫名
String dbName="db";
//表名
String tableName="dbtest";
//聯結字符串
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);
//獲得數據結果集合
ResultSetMetaData rmeta = rs.getMetaData();
//確定數據集的列數,亦字段數
int numColumns=rmeta.getColumnCount();
// 輸出每一個數據值
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("數據庫操作成功,恭喜你");
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中,并設置環境變量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;
現在可以進行java和mysql數據庫的連接了
下面用一個簡單的例子來測試一下
在tomcat/webapps/下建一個文件夾mysqlManager,創建目錄mysqlManager/WEB-INF/classes
mysqlManager/WEB-INF/web.xml
在/mysqlManager/ 下新建index.jsp文件,內容如下
/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.*" %>
<%!
//這個函數用來獲取一個和數據庫的連接
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;
}
//下面的函數使顯示的字符串為漢語
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("請輸入要執行的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數據庫管理系統</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 />
<%//接受用戶的輸入顯示查詢結果 %>
<%
//獲取用戶輸入的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)){
//執行結果是ResultSet
rs=stmt.getResultSet();
//獲取rs自身的描述信息
ResultSetMetaData rsmd=rs.getMetaData();
//獲取rs的列數目
int colNum=rsmd.getColumnCount();
%>
<p>您的查詢結果為:</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>發生錯誤,請檢查數據庫的連接</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 會產生查詢結果
如有疑問可以給我發信qiudawei115@sohu.com