比如java向txt文件中寫入新的一行時,java獲得文本輸入框中的新行時等
Unix系統里,每行結尾只有“<換行>”,即“\r”;
Windows系統里面,每行結尾是“<換行><回車>”,即“\r\n”;
Mac系統里,每行結尾是“<回車>”,即“\n”。
一個直接后果是,Unix/Mac系統下的文件在Windows里打開的話,所有文字會變成一行;
而Windows里的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。
如果已經配置mysql的環境變量,請直接執行:mysql -u 輸入用戶名 -p 回車 之后輸入密碼
如果未配置環境變量請先進入mysql的bin目錄下
執行如下語句導入:source 輸入sql文件的位置
執行如下語句導出:mysqldump -u輸入用戶名 -p輸入密碼 數據庫名 表名 >文件名.sql
1、安裝jdk --> D:\Program Files\Java\jdk1.5.0
2、配置JAVA_HOME --> D:\Program Files\Java\jdk1.5.0
3、解壓tomcat5.5 --> D:\Program Files\Apache Software Foundation\Tomcat 5.5
4、打開cmd,進入到tomcat5.5bin目錄 --> D:\Program Files\Apache Software Foundation\Tomcat 5.5\bin>
5、執行命令:service install tomcat
執行結果為:
Installing the service 'tomcat' ...
Using CATALINA_HOME: D:\Program Files\Apache Software Foundation\Tomcat 5.5
Using CATALINA_BASE: D:\Program Files\Apache Software Foundation\Tomcat 5.5
Using JAVA_HOME: D:\Program Files\Java\jdk1.5.0
Using JVM: D:\Program Files\Java\jdk1.5.0\jre\bin\server\jvm.dll
The service 'tomcat' has been installed.
此時產生名為:Apache Tomcat tomcat 的服務
6、卸載命令:service remove tomcat
執行結果為:
The service 'tomcat' has been removed
@echo off
rem 這段代碼的作用是對mysql進行查詢操作,并將查詢結果寫入到result.txt文件中
echo %TIME%
set errorlevel=0
set path_bin_mysql="D:\Program Files\mysql_1\bin\mysql"
set host=localhost
set port=3308
set database_mysql=mysql
set user_mysql=root
set password_mysql=admin
%path_bin_mysql% -u%user_mysql% -p%password_mysql% -h%host% -P%port% %database_mysql%< test.sql >
result.txt
pause
1、程序
程序開發是一方面,系統架構設計(硬件+網絡+軟件)是另一方面。
軟件架構方面,做網站首先需要很多web服務器存儲靜態資源,比如圖片、視頻、靜態頁等,千萬不要把靜態資源和應用服務器放在一起。
一個好的程序員寫出來的程序會非常簡潔、性能很好,一個初級程序員可能會犯很多低級錯誤,這也是影響網站性能的原因之一。
網站要做到效率高,不光是程序員的事情,數據庫優化、程序優化這是必須的,在性能優化上要數據庫和程序齊頭并進!緩存也是兩方面同時入手。第一,數據庫緩存和數據庫優化,這個由dba完成(而且這個有非常大的潛力可挖,只是由于我們都是程序員而忽略了他而已)。第二,程序上的優化,這個非常的有講究,比如說重要一點就是要規范SQL語句,少用in 多用or,多用preparestatement,另外避免程序冗余如查找數據少用雙重循環等。另外選用優秀的開源框架加以支持,我個人認為中后臺的支持是最最重要的,可以選取spring+ibatis。因為ibatis直接操作SQL并有緩存機制。spring的好處就不用我多說了,IOC的機制可以避免new對象,這樣也節省開銷。據我分析,絕大部分的開銷就是在NEW的時候和連接數據庫時候產生的,請盡量避免。另外可以用一些內存測試工具來做一個demo說明hibernate和ibatis誰更快!前臺你想用什么就用什么,struts,webwork都成,如果覺得自己挺牛X可以試試tapestry。
用數據庫也未必不能解決訪問量巨大所帶來的問題,作成靜態文件硬盤的尋址時間也未必少于數據庫的搜索時間,當然對資料的索引要下一翻工夫。我自己覺得門戶往往也就是當天、熱門的資料點擊率較高,將其做緩存最多也不過1~2G的數據量吧,舉個例子:
拿網易新聞來http://news.163.com/07/0606/09/3GA0D10N00011229.html
格式化一下,方便理解:http://域名/年/月日/新聞所屬分類/新聞ID.html
可以把當天發布的、熱門的、流攬量大的作個緩寸,用hashtable(key:年-月-日-分類-ID,value:新聞對象),靜態將其放到內存(速度絕對快過硬盤尋址靜態頁面)。
通常是采用oracle存儲過程+2個weblogic,更新機制也幾乎一樣每簽發一條新聞,就會生成靜態頁面,然后發往前端的web服務器,前端的web都是做負載均衡的。另外還有定時的程序,每5-15分鐘自動生成一次。在發布新聞的同時將數據緩存。當然緩存也不會越來越大,在個特定的時間段(如凌晨)剔除過期的數據。做一個大的網站遠沒有想象中那么簡單,服務器基本就要百十個的。
這樣可以大大增加一臺計算機的處理速度,如果一臺機器處理不了,可以用httpserver集群來解決問題了。
2、網絡
中國的網絡分南北電信和網通,訪問的ip就要區分南北進入不同的網絡。
3、集群
通常會使用CDN與GSBL與DNS負載均衡技術,每個地區一組前臺服務器群,例如:網易,百度使用了DNS負載均衡技術,每個頻道一組前臺服務器,一搜使用了DNS負載技術,所有頻道共用一組前臺服務器集群。
網站使用基于Linux集群的負載均衡,失敗恢復,包括應用服務器和數據庫服務器,基于linux-ha的服務狀態檢測及高可用化。
應用服務器集群可以采用apache+tomcat集群和weblogic集群等;web服務器集群可以用反向代理,也可以用NAT的方式,或者多域名解析都可以;Squid也可以,方法很多,可以根據情況選擇。
4、數據庫
因為是千萬人同時訪問的網站,所以一般是有很多個數據庫同時工作的,說明白一點就是數據庫集群和并發控制,數據分布到地理位置不同的數據中心,以免發生斷電事故。另外還有一點的是,那些網站的靜態化網頁并不是真的,而是通過動態網頁與靜態網頁網址交換做出現的假象,這可以用urlrewrite 這樣的開源網址映射器實現。這樣的網站實時性也是相對的,因為在數據庫復制數據的時候有一個過程,一般在技術上可以用到hibernate和 ecache,但是如果要使網站工作地更好,可以使用EJB和websphere,weblogic這樣大型的服務器來支持,并且要用oracle這樣的大型數據庫。
大型門戶網站不建議使用Mysql數據庫,除非你對Mysql數據的優化非常熟悉。Mysql數據庫服務器的master-slave模式,利用數據庫服務器在主從服務器間進行同步,應用只把數據寫到主服務器,而讀數據時則根據負載選擇一臺從服務器或者主服務器來讀取,將數據按不同策略劃分到不同的服務器(組)上,分散數據庫壓力。
大型網站要用oracle,數據方面操作盡量多用存儲過程,絕對提升性能;同時要讓DBA對數據庫進行優化,優化后的數據庫與沒優化的有天壤之別;同時還可以擴展分布式數據庫,以后這方面的研究會越來越多;
5、頁面
從開始就考慮使用虛擬存儲/簇文件系統。它能讓你大量并行IO訪問,而且不需要任何重組就能夠增加所需要的磁盤。
頁面數據調用更要認真設計,一些數據查詢可以不通過數據庫的方式,實時性要求不高的可以使用lucene來實現,即使有實時性的要求也可以用lucene,lucene+compass還是非常優秀的。
新聞類的網站可以用靜態頁存儲,采用定時更新機制減輕服務器負擔;首頁每個小模塊可以使用oscache緩存,這樣不用每次都拉數據。
前端的基于靜態頁面緩存的web加速器,主要應用有squid等。squid 將大部分靜態資源(圖片,js,css等)緩存起來,直接返回給訪問者,減少應用服務器的負載網站的靜態化網頁并不是真的,而是通過動態網頁與靜態網頁網址交換做出現的假象,這可以用urlrewrite這樣的開源網址映射器實現,后綴名為htm或者html并不能說明程序生成了靜態頁面,可能是通過 url重寫來實現的,為的只不過是在搜索引擎中提升自己網站的覆蓋面積罷了。
生成靜態頁面的服務器和www服務器是兩組不同的服務器,頁面生成后才會到www服務器,一部分數據庫并不是關系數據庫,這樣更適合信息衍生,www、mail服務器、路由器多,主要用負載平衡解決訪問瓶頸。
靜態頁面的缺點:
1) 增加了程序的復雜度
2) 不利于管理資料
3) 速度不是最快
4) 傷硬盤
6、緩存
從一開始就應該使用緩存,高速緩存是一個更好的地方存儲臨時數據,比如Web站點上跟蹤一個特定用戶的會話產生的臨時文件,就不再需要記錄到數據庫里。
不能用lucene實現的可以用緩存,分布式緩存可以用memcached,如果有錢的話用10來臺機器做緩存,> 10G的存儲量相信存什么都夠了;如果沒錢的話可以在頁面緩存和數據緩存上下功夫,多用OSCACHE和EHCACHE,SWARMCACHE也可以,不過據說同步性不是很好;
可以使用Memcache進行緩存,用大內存把這些不變的數據全都緩存起來,而當修改時就通知cache過期,memcache是LJ開發的一款分布式緩存產品,很多大型網站在應用,我們可以把Cache Server與AppServer裝在一起。因為Cache Server對CPU消耗不大,而有了Cache Server的支援,App Server對內存要求也不是太高,所以可以和平共處,更有效的利用資源。
將response內響應給使用者的內容,使用GZIP壓縮的方式回傳給瀏覽器,而IE5和NS6也都有支持Gzip的壓縮格式。
這個方法在之前就有人提出過,因為是讓網頁在輸出時經過壓縮,可以讓傳輸量變小很多,雖然現在的網絡頻寬對于用來看網頁已經綽綽有余,但是檔案大小太大的網頁還是會造成一定的影響。
經過Gzip壓縮過的網頁,檔案大小可以到原本壓縮前的20%。
package com.jsptw.filter;
import java.io.*;
import java.util.zip.GZIPOutputStream;
import javax.servlet.*;
import javax.servlet.http.*;
public class GZIPEncodeFilter implements Filter {
public void init(FilterConfig filterConfig) {}
public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String transferEncoding = getGZIPEncoding((HttpServletRequest)request);
if (transferEncoding == null) {
chain.doFilter(request, response);
} else{
((HttpServletResponse)response).setHeader("Content-Encoding", transferEncoding);
GZIPEncodableResponse wrappedResponse = new GZIPEncodableResponse((HttpServletResponse)response);
chain.doFilter(request, wrappedResponse);
wrappedResponse.flush();
}
}
public void destroy() {}
private static String getGZIPEncoding(HttpServletRequest request) {
String acceptEncoding = request.getHeader("Accept-Encoding");
if (acceptEncoding == null)
return null;
acceptEncoding = acceptEncoding.toLowerCase();
if (acceptEncoding.indexOf("x-gzip") >= 0) {
return "x-gzip";
}
if (acceptEncoding.indexOf("gzip") >= 0) {
return "gzip";
}
return null;
}
private class GZIPEncodableResponse extends HttpServletResponseWrapper {
private GZIPServletStream wrappedOut;
public GZIPEncodableResponse(HttpServletResponse response) throws IOException {
super(response);
wrappedOut = new GZIPServletStream(response.getOutputStream());
}
public ServletOutputStream getOutputStream() throws IOException {
return wrappedOut;
}
private PrintWriter wrappedWriter;
public PrintWriter getWriter() throws IOException {
if (wrappedWriter == null) {
wrappedWriter = new PrintWriter( new OutputStreamWriter( getOutputStream(), getCharacterEncoding())); }
return wrappedWriter;
}
public void flush() throws IOException {
if (wrappedWriter != null) {
wrappedWriter.flush();
}
wrappedOut.finish();
}
}
private class GZIPServletStream extends ServletOutputStream {
private GZIPOutputStream outputStream;
public GZIPServletStream(OutputStream source) throws IOException {
outputStream = new GZIPOutputStream(source);
}
public void finish() throws IOException {
OutputStream.finish();
}
public void write(byte[] buf) throws IOException {
outputStream.write(buf);
}
public void write(byte[] buf, int off, int len) throws IOException {
outputStream.write(buf, off, len);
}
public void write(int c) throws IOException {
outputStream.write(c);
}
public void flush() throws IOException {
outputStream.flush();
}
public void close() throws IOException {
outputStream.close();
}
}
}
web.xml中的設定為:
<filter>
<filter-name>GZIPEncoder</filter-name>
<filter-class>com.jsptw.filter.GZIPEncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name> GZIPEncoder</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/a_heng/archive/2009/09/22/4579979.aspx
一 簡單加密(不可逆):
MD5(信息摘要算法,Message Digest),SHA(安全散列算法,Secure Hash,Algorithm)、HMAC(散列消息鑒別碼,Hash Message Authentication Code)
二 復雜算法:
1、對稱加密:加密解密使用相同的密鑰:DES(Data Encryption Standard,數據加密算法) 、IDEA、RC2、RC4、SKIPJACK
2、非對稱加密:分為公開密鑰(publickey)和私有密鑰(privatekey),且公開密鑰與私有密鑰是一對。非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費時間長、速度慢,它不適合于對文件加密而只適用于對少量數據進行加密。經典的非對稱加密算法如RSA(三個人名:Ron Rivest, AdiShamir 和Leonard Adleman)算法等安全性都相當高。
1.INSERT INTO SELECT語句
語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目標表Table2必須存在,由于目標表Table2已經存在,所以我們除了插入源表Table1的字段外,還可以插入常量。示例如下:
INSERT INTO SELECT語句復制表數據
--1.創建測試表
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
create TABLE Table2
(
a varchar(10),
c varchar(10),
d int,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.創建測試數據
Insert into Table1 values('趙','asds','90')
Insert into Table1 values('錢','asds','100')
Insert into Table1 values('孫','asds','80')
Insert into Table1 values('李','asds',null)
GO
select * from Table2
--3.INSERT INTO SELECT語句復制表數據
Insert into Table2(a, c, d) select a,c,5 from Table1
GO
--4.顯示更新后的結果
select * from Table2
GO
--5.刪除測試表
drop TABLE Table1
drop TABLE Table2
2.SELECT INTO FROM語句
語句形式為:SELECT vale1, value2 into Table2 from Table1
要求目標表Table2不存在,因為在插入時會自動創建表Table2,并將Table1中指定字段數據復制到Table2中。示例如下:
SELECT INTO FROM創建表并復制表數據
--1.創建測試表
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.創建測試數據
Insert into Table1 values('趙','asds','90')
Insert into Table1 values('錢','asds','100')
Insert into Table1 values('孫','asds','80')
Insert into Table1 values('李','asds',null)
GO
--3.SELECT INTO FROM語句創建表Table2并復制數據
select a,c INTO Table2 from Table1
GO
--4.顯示更新后的結果
select * from Table2
GO
--5.刪除測試表
drop TABLE Table1
drop TABLE Table2
MySQl詳細安裝過程
1.利用安裝包進行安裝:
雙擊mysql-5.0.19-win32.zip打開,再雙擊里面的setup.exe就開始進行安裝了,當然你也可以先解壓再雙擊安裝。
a.彈出MySQL Server 5.0-Setup Wizard對話框,點next
b.就到了選擇安裝類型的對話框了,有三種類型:(1)典型
(2)完全(3)自定義。一般來說選典型就可以了,典型和完全安裝都會裝在默認的路徑C:\Program Files\MySQL\MySQL
Server 5.0,如果要改變安裝路徑就要選擇自定義,我這里選擇的是“完全”
c.點擊next->install就開始安裝了。如果選擇“自定義”的話,改變你的安裝路徑后,再點擊next->install是一樣的。
d.跟著就到了一個問你是否要申請一個登錄MySQL.com的帳戶,有興趣的話可以按步驟來申請一個,呵呵。我選擇的是Skip Sign-Up->finish。注意這時并沒有安裝完成,接著要進行配置,配置好后才能使用!
e.點finish后會馬上彈出一個MySQL Server Instance Configuration Wizard的對話框,點next
f.又到了一個選擇配置類型的對話框,“詳細”和“標準”配置,如果想快的話就選“標準”,再點next就可以了。不過我強烈推薦選“詳細”的單選按鈕,點next
g.再選擇服務器類型“開發者”,“服務器”,“專門的MySQL服務器”,三者之間的區別是占用的內存的不同,從最小,中等,最大。點next,選擇數
據庫類型:“多功能的”,“事務專用的”,“非事務專用”。三者的區別是:“多功能的”可以同時使用MyISAM和InnoDB儲存引擎,它們占用
MySQL可用資源各半;“事務專用的”InnoDB作為主儲存引擎,占用大量的資源,MyISAM引擎仍然可用;“非事務專用的”InnoDB就不能再
用了,點next
h.(因為我選的是“多功能的”,不同的選項這里可能會不同)這里可以選擇存放InnoDB表空間的目錄,我選的默認,點next
i.就到了為服務器設置合適的并發連接數,有三種類型:“決策支持”并發連接數較小,默認設為20;“在線事務處理”可以在任何時候達到500個活動的連接;“手動設定”自己想要的連接數,選了這個后,從右邊的下拉框選一個合適的數值,點next后
j.選擇端口,3306就可以了,點next
k.設置字符集,這里又是有三個選擇:“標準”使用的是latin1字符集,不支持中文;“多語言”使用的是UTF-8,支持中文;“手動選擇默認的字符集”,選中后可以從右邊的下拉框中選擇你想要的字符集,里面有gb2312和gbk是支持中文的,點next
l.安裝成為windows的服務,并可以從右邊的下拉框中為它選擇一個名稱,例如“MySQL”,“MySQL5”等。Launch the
MySQL Server automatically是否自動啟動服務,Include Bin Directory in Windows
Path是否要將安裝目錄C:\Program Files\MySQL\MySQL Server
5.0\bin加入環境變量PATH中,建議加入的好,點next
m.設置root用戶的密碼,當然也可以不把Modify Security Setting 勾掉不設密碼,建議還是設的好。Enable root
access from remote machines是否允許root用戶進行遠程登錄,Create An Anonymous
Account是否創建匿名用戶
n.點next->Execute->Finish。
至此MySQL終于安裝完成
MySQl詳細安裝過程
1.利用安裝包進行安裝:
雙擊mysql-5.0.19-win32.zip打開,再雙擊里面的setup.exe就開始進行安裝了,當然你也可以先解壓再雙擊安裝。
a.彈出MySQL Server 5.0-Setup Wizard對話框,點next
b.就到了選擇安裝類型的對話框了,有三種類型:(1)典型
(2)完全(3)自定義。一般來說選典型就可以了,典型和完全安裝都會裝在默認的路徑C:\Program Files\MySQL\MySQL
Server 5.0,如果要改變安裝路徑就要選擇自定義,我這里選擇的是“完全”
c.點擊next->install就開始安裝了。如果選擇“自定義”的話,改變你的安裝路徑后,再點擊next->install是一樣的。
d.跟著就到了一個問你是否要申請一個登錄MySQL.com的帳戶,有興趣的話可以按步驟來申請一個,呵呵。我選擇的是Skip Sign-Up->finish。注意這時并沒有安裝完成,接著要進行配置,配置好后才能使用!
e.點finish后會馬上彈出一個MySQL Server Instance Configuration Wizard的對話框,點next
f.又到了一個選擇配置類型的對話框,“詳細”和“標準”配置,如果想快的話就選“標準”,再點next就可以了。不過我強烈推薦選“詳細”的單選按鈕,點next
g.再選擇服務器類型“開發者”,“服務器”,“專門的MySQL服務器”,三者之間的區別是占用的內存的不同,從最小,中等,最大。點next,選擇數
據庫類型:“多功能的”,“事務專用的”,“非事務專用”。三者的區別是:“多功能的”可以同時使用MyISAM和InnoDB儲存引擎,它們占用
MySQL可用資源各半;“事務專用的”InnoDB作為主儲存引擎,占用大量的資源,MyISAM引擎仍然可用;“非事務專用的”InnoDB就不能再
用了,點next
h.(因為我選的是“多功能的”,不同的選項這里可能會不同)這里可以選擇存放InnoDB表空間的目錄,我選的默認,點next
i.就到了為服務器設置合適的并發連接數,有三種類型:“決策支持”并發連接數較小,默認設為20;“在線事務處理”可以在任何時候達到500個活動的連接;“手動設定”自己想要的連接數,選了這個后,從右邊的下拉框選一個合適的數值,點next后
j.選擇端口,3306就可以了,點next
k.設置字符集,這里又是有三個選擇:“標準”使用的是latin1字符集,不支持中文;“多語言”使用的是UTF-8,支持中文;“手動選擇默認的字符集”,選中后可以從右邊的下拉框中選擇你想要的字符集,里面有gb2312和gbk是支持中文的,點next
l.安裝成為windows的服務,并可以從右邊的下拉框中為它選擇一個名稱,例如“MySQL”,“MySQL5”等。Launch the
MySQL Server automatically是否自動啟動服務,Include Bin Directory in Windows
Path是否要將安裝目錄C:\Program Files\MySQL\MySQL Server
5.0\bin加入環境變量PATH中,建議加入的好,點next
m.設置root用戶的密碼,當然也可以不把Modify Security Setting 勾掉不設密碼,建議還是設的好。Enable root
access from remote machines是否允許root用戶進行遠程登錄,Create An Anonymous
Account是否創建匿名用戶
n.點next->Execute->Finish。
至此MySQL終于安裝完成
測試
Microsoft Windows XP [版本 5.1.2600](C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>mysql -uroot -pEnter
password: ********Welcome to the MySQL monitor. Commands end with ; or
\g.Your MySQL connection id is 2 to server version: 5.0.19-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
看到上面這個就說明安裝成功!一般的登錄為:mysql -h host -u user -p (password)
非安裝包的安裝
1.將mysql-noinstall-5.0.19-win32.zip到C:\(或者其他你想的安裝目錄),重命名mysql
2.進入C:\mysql\可以找到如下的配置文件樣本,my-small.ini,my-medium.ini等。我選擇my-medium.ini,先將復制到另外的地方,例如:桌面,然后重命名為my.ini,再剪切回C:\mysql\目錄下。
3.打開my.ini進行編輯,要修改的地方如下:
[client]#password = your_passwordport = 3309#socket = /tmp/mysql.sock
將socket項用'#'注釋掉,因為windows下沒有,又因為我上面用了端口3306,所以這里要把端口也改了,改為3309,你可以改成其他沒有被占用的端口3307,3308等。
[mysqld]
basedir=C:/mysql/datadir=C:/mysql/data/port = 3309#socket = /tmp/mysql.sock
default-character-set=utf8
這里同樣把socket注釋掉,端口改成3309;basedir為安裝目錄,datadir為存放數據的目錄,記住要用“/”,而不是“\”,如果要用"\"就要這樣使用C:\\mysql\\data,另外這里我還設置了默認的字符集為utf8。
還有
[mysql]
default-character-set=utf8
no-auto-rehash# Remove the next comment character if you are not familiar with SQL#safe-updates在上面添加默認的字符集就可以了。
4.編輯完my.ini文件后就要選擇一種MySQL服務器類型,它們之間的區別如下:
Binary
Description
mysqld-debug
Compiled with full debugging and automatic memory allocation checking, as well as InnoDB and BDB tables.
mysqld
Optimized binary with InnoDB support.
mysqld-nt
Optimized binary for Windows NT, 2000, and XP with support for named pipes.
mysqld-max
Optimized binary with support for InnoDB and BDB tables.
mysqld-max-nt
Like mysqld-max, but compiled with support for named pipes.
上面每一種類型都可以在C:\mysql\bin目錄下找到對應的.exe程序,例如:mysqld-max.exe,mysqld-nt.exe等。
5.選擇好后就要安裝成windows服務了,過程如下:(我選的是mysqld-max)
Microsoft Windows XP [版本 5.1.2600](C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>cd c:\mysql\bin
C:\mysql\bin>mysqld-max --install mysql-max
--defaults-file=c:\mysql\my.iniService successfully
installed.C:\mysql\bin>net start mysql-maxmysql-max 服務正在啟動
.mysql-max 服務已經啟動成功。
C:\mysql\bin>mysql -uroot --port=3309Welcome to the MySQL monitor.
Commands end with ; or \g.Your MySQL connection id is 1 to server
version: 5.0.19-max-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
安裝成windows服務的命令格式為:服務器類型 --install(自動) 名稱(你想要用的名稱) --defaults-file=my.ini文件的絕對路徑。--install-manual(手動)
注意:上面的登錄mysql -uroot --port=3309 非安裝默認設定的用戶為root,密碼為空,同時因為我改了端口,所以要加上--port選項。
一臺機器上安裝多個windows服務
1.創建要安裝的目錄,例如:F:\mysql,在F:\mysql目錄下再創建一個子目錄data.
2.再到已經裝好的mysql的目錄下,例如:C:\mysql\,把里面data目錄下的mysql目錄copy到F:\mysql\data\目錄
下,再C:\mysql\目錄下share目錄和my.ini文件也copy到F:\mysql\目錄下,其實只需要C:\mysql\share
\english目錄下的errmsg.sys文件.
3.編輯F:\mysql\my.ini文件,修改里面的端口和basedir,datadir就可以了.
[client]#password = 123456port = 3308#socket = /tmp/mysql.sock
[mysqld]
# set basedir to your installation pathbasedir=F:/mysql/# set datadir
to the location of your data directorydatadir=F:/mysql/data/
port = 3308
4.安裝成windows服務同上面的非安裝版本的安裝過程是一樣的,過程如下:
Microsoft Windows XP [版本 5.1.2600](C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>cd c:\mysql\bin
C:\mysql\bin>mysqld-debug --install mysql-debug --defaults-file=F:\mysql\my.iniService successfully installed.
C:\mysql\bin>net start mysql-debugmysql-debug 服務正在啟動 .mysql-debug 服務已經啟動成功。
C:\mysql\bin>mysql -uroot --port=3308Welcome to the MySQL monitor.
Commands end with ; or \g.Your MySQL connection id is 1 to server
version: 5.0.19-community-debug-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql>