做者:compy html
日期:20170601java
安裝軟件包版本mysql
MySQL-Connector-Java: mysql-connector-java-5.1.36linux
Tomcat: apache-tomcat-8.0.26c++
JDK: jdk-8u60-linux-x64web
MySQL: mysql-5.6.26sql
部署Tomcat使用jsp連接Msql數據庫
上傳安裝文件:apache
安裝JDK:vim
# rpm -ivh jdk-8u60-linux-x64.rpm
# java -version
查看新裝的java安裝所在的位置/usr/java
# rpm -pql jdk-8u60-linux-x64.rpm
修改環境變量
# vim /etc/profile
#JDK的家目錄位置
export JAVA_HOME=/usr/java/jdk1.8.0_60/
#JDK運行的而二進制目錄
export JAVA_BIN=/usr/java/jdk1.8.0_60/bin
# 環境變量
export PATH=${JAVA_HOME}bin:$PATH
# 定義兩個類
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
加載環境變量
# source /etc/profile
安裝tomcat
# tar -xvf apache-tomcat-8.0.26.tar.gz -C /usr/local/src/
# cd /usr/local/src/apache-tomcat-8.0.26/
# ls
tomcat
|---bin Tomcat:存放啓動和關閉tomcat腳本;
|---conf Tomcat:存放不一樣的配置文件(server.xml和web.xml);
|---lib:包含Tomcat使用的jar文件.unix平臺此目錄下的任何文件都被加到Tomcat的classpath中;
|---logs:存放Tomcat執行時的LOG文件;
|---webapps:Tomcat的主要Web發佈目錄(包括應用程序示例);
|--- ROOT:tomcat的家目錄
|--- index.jsp:Tomcat的默認首頁文件
|---work:存放jsp編譯後產生的class文件或servlet文件存放
|---temp:存放Tomcat運行時所產生的臨時文件
tomcat的執行腳本文件
# ls bin/
#bat爲windows下的腳本(批處理)
#sh爲Linux下的腳本,Shell
#catalina.sh是一個最關鍵的腳本,其餘的啓動腳本如startup,shutdown.sh,都是使用了不一樣的參數調用了該腳本,startup是以start參數調用了catalina腳本,shutdown使用stop調用了catalina腳本!
# cd ..
# pwd
/usr/local/src
# mv apache-tomcat-8.0.26/ /usr/local/tomcat
Tomcat啓動腳本
# vim /etc/init.d/tomcat
#!/bin/bash
# Tomcat init script for Linux
# chkconfig: 2345 96 14
# discription: The Apache Tomcat Server/JSP container
JAVA_OPTS='-server -Xms64m -Xmx128m'
JAVA_HOME=/usr/java/jdk1.8.0_60
CATALINA_HOME=/usr/local/tomcat
$CATALINA_HOME/bin/catalina.sh $*
JAVA_OPTS='-server -Xms64m -Xmx128m'是用來設置JAVA相關運行參數的變量
-server 必定要做爲第一個參數,在多個CPU時性能佳
-Xms 初始heap(堆)大小,使用最小內存大小,cpu性能高時此值應該設大一些
-Xmx Java heap最大值,使用內存的最大值
上面兩個值分配的是JVM的最小和最大值,取決於硬件的物理內存大小,建議爲物理內存的通常,不超過80%
JAVA_HOME=/usr/local/jdk1.8.0_60 指定Tomcat目錄
$CATALINA_HOME=/usr/local/tomcat $* 指定運行tomcat的腳本
# chmod +x /etc/init.d/tomcat
# service tomcat start
# chkconfig --add tomcat
# chkconfig tomcat on
# netstat -antup | grep 8080
測試Tomcat
覽器訪問 http://192.168.100.101:8080
建立管理Manger App用戶
# vim /usr/local/tomcat/conf/tomcat-users.xml
去掉註釋<!-- -->
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/> #添加此行
<user username="compy" password="123456" roles="manager-gui"/> #添加此行
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
幾種角色
1:「manager-gui」:Allows access to the html interface
#容許經過web的方式登陸查看服務器信息
2:「manager-script」: Allows access to the plain text interface
#容許以純文本的方式訪問
3:「manager-jmx」: Allows access to the JMX proxy interface
#容許jmx的代理訪問
4:「manager-status」: Allows access to the read-only status pages
#容許以只讀狀態訪問
沒有restart命令,只能先stop在start
# service tomcat stop
# service tomcat start
# ls /usr/local/tomcat/conf/
server.xml是Tomcat的主配置文件(全局),服務器設置的,例如端口設置,路徑設置。
context裏設置tomcat數據源,用來鏈接數據庫。
tomcat_user主要是用戶名和密碼的設置。
web是默認首頁等等之類的設置
# vim /usr/local/tomcat/conf/server.xml
<Host name="tomcat01.gyso.pw" appBase="/var/www/html" >
<Context path="" docBase="/var/www/html/tomcat01" />
</Host>
<Host name="tomcat02.gyso.pw" appBase="/var/www/html" >
<Context path="" docBase="/var/www/html/tomcat02" />
</Host>
#在末尾的</Engine>上面添加上面這幾行
appBase指定應用程序(網站)的基本路徑,這裏能夠存放多個程序(網站),通常是相對路徑,相對於tomcat的安裝目錄。
Context path=""爲虛擬目錄,若是是空,表示直接就是/,若是是如path="aa",那麼訪問的時候就是site:8080/aa
xuegod.cndocBase="……" 爲實際目錄,就是能夠是絕對路徑,若是是相對路徑就是基於appBase
在hosts文件下加兩條記錄
# service tomcat stop
# service tomcat start
# mkdir -p /var/www/html/{tomcat01,tomcat02}
# echo tomcat01.gyso.pw > /var/www/html/tomcat01/index.html
# echo tomcat02.gyso.pw > /var/www/html/tomcat02/index.html
在沒有真實域名和服務器是,在虛擬機中作實驗室需在客戶機host文件中添加以下兩條:
192.168.100.101 tomcat01.gyso.pw
192.168.100.101 w.gyso.pw
192.168.100.101 tomcat02.gyso.pw
網頁測試
http://tomcat01gyso.pw:8080
http://tomcat02.gyso.pw:8080
安裝tomcat-Native
Tomcat 可使用 apr 來提供更好的伸縮性、性能和集成到本地服務器技術。用來提升 tomcat 的性能。 tomcat native 在具體的運行平臺上,提供了一種優化技術,它自己是基於 ARP(Apache Portable(輕便) Runtime)技術
咱們應用了 tomcat native 技術以後,tomcat 在跟操做系統級別的交互方面能夠作得更好,而且它更像apache 同樣,能夠更好地做爲一臺 web server。 tomcat 能夠利用 apache 的 apr 接口,使用操做系統的部分本地操做,從而提高性能APR 提高的是靜態頁面處理能力
關於tomcat-native的相關介紹及下載: http://tomcat.apache.org/download-native.cgi
# yum -y install apr-devel gcc gcc-c++ openssl-devel openssl
# tar -zxf tomcat-native-1.1.34-src.tar.gz -C /usr/local/src/
# cd /usr/local/src/tomcat-native-1.1.33-src/jni/native/
# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.8.0_60/ --with-ssl
# make && make install
須要添加庫文件:
# vim /etc/ld.so.conf
/usr/local/apr/lib ##添加此行
# ldconfig
# echo "ldconfig" >>/etc/rc.local
# service tomcat stop
# service tomcat start
看日誌看是否支持native
# cat /usr/local/tomcat/logs/catalina.out | grep Native --color
安裝mysql
解決依賴
#gcc等相關在編譯apache已安裝
# yum install -y cmake ncurses-devel
編譯安裝MySql
# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-5.6.26
建立mysql運行用戶
# useradd -M -s /sbin/nologin mysql
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_MEMORY_STORAGE_ENGINE=1\
-DWITH_READLINE=1\
-DENABLED_LOCAL_INFILE=1\
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL-USER=mysql
DCMAKE_INSTALL_PREFIX #制定mysql的安裝根目錄,目錄在安裝的時候會自動建立,這個值也能夠在服務器啓動時,用--basedir來設置
DMYSQL_UNIX_ADDR #服務器與本地客戶端進行通訊的Unix套接字文件,必須是絕對路徑,默認位置/tmp/mysql.sock,能夠在服務器啓動時,用--socket改變
DDEFAULT_CHARSET #mysql默認使用的字符集,不指定將默認使用Latin1西歐字符集
DDEFAULT_COLLATION #默認字符校對
DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默認值也是all支持全部的字符集
DWITH_MYISAM_STORAGE_ENGINE #靜態編譯MYISAM,INNOBASE,MEMORY存儲引擎到MYSQL服務器,這樣MYSQL就支持這三種存儲引擎
DWITH_INNOBASE_STORAGE_ENGINE
DWITH_MEMORY_STORAGE_ENGINE
DWITH_READLINE #支持readline庫
DENABLED_LOCAL_INFILE #容許本地倒入數據,啓用加載本地數據
DMYSQL_DATADIR #mysql數據庫存放路徑
DMYSQL-USER #運行mysql的用戶
除開在線,可使用本地幫助
# ccmake /usr/local/src/mysql-5.6.26/
以2個進程來編譯,不要超過CPU核心數
# make -j 2 ; make install
屬主屬組更改
# cd && chown -R mysql:mysql /usr/local/mysql/
覆蓋原配置文件
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
啓動腳本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
更改啓動腳本中指定mysql位置
# vim /etc/init.d/ mysqld
basedir=
datadir=
#修改成
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
開機啓動
# chkconfig mysqld on
初始化數據庫
# /usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql/\
--datadir=/usr/local/mysql/data/\
--user=mysql
初始化看這個下面有無mysql和test等數據庫
# ls /usr/local/mysql/data/
這個裏面是部分命令,讓系統直接調用
# ln -s /usr/local/mysql/bin/* /bin/
# servie mysqld start
初始安全設置(設置root密碼,123456)[記住,編譯安裝以前,記得除去mysql mysql-devel mysql-libs三個軟件]
測試登陸(OK)
# mysql -uroot -p123456
也能夠藉助下面的腳原本實現,腳本須要修改,注意
# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
# source /etc/profile
# vim /etc/my.cnf
[mysqld]
character-set-server=utf8 #添加此行,修改mysql數據庫默認編碼(和低版本的mysql寫法不同, 低版本的寫法是:default-character-set=utf8
# service mysqld restart
# mysql_secure_installation //數據庫安全初始化
# mysql -uroot -p123456 //檢測登錄(OK)
mysql> show variables like "%char%";
+---------------------------+-----------------------------------+
| Variable_name | Value |
+---------------------------+-----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir |/usr/local/mysql/share/charsets/ |
+---------------------------+-----------------------------------+
測試數據
#mysql -uroot -p123456
mysql> create database tomcat; //測試數據庫,爲了和後面方便測試,這裏建立tomcat
mysql> use tomcat
mysql> create table test01(id int,name varchar(128)); //建立測試表
mysql> insert into test01 values(1,"compy01"),(2,"compy02"),(3,"compy03") ,(4,"godbey");//建立測試數據
mysql> grant all on tomcat.* to tomcat@localhost identified by 'tomcat'; //受權用戶
mysql> \q
# mysql -utomcat -ptomcat //測試tomcat能夠登錄(OK)
測試jsp連接mysql
Jsp連接mysql,官方提供了工具:安裝mysql-connector
安裝mysql-connector
# tar xvf mysql-connector-java-5.1.36.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-connector-java-5.1.36/
只須要複製到tomcat的lib目錄下,重啓tomcat就能夠生效
# cp /usr/local/src/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /usr/local/tomcat/lib/
# service tomcat stop
# service tomcat start
測試
# vim /usr/local/tomcat/webapps/ROOT/mysql.jsp //創建測試頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
String driverName="com.mysql.jdbc.Driver";
String userName="tomcat";
String userPasswd="tomcat";
String dbName="tomcat";
String tableName="test01";
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
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("name");
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();
%>
訪問網址如圖