2、實現tomcat+mysql實現jps的連線

科技小能手發表於2017-11-12

二 apache-tomcat+mysql通過jsp連結

2.1 安裝tomcat-native

構建tc-native需要安裝三個元件:

APR庫

OpenSSL庫

Java SE開發工具包(JDK)

Apache Tomcat本地庫是一個與Apache Tomcat一起使用的可選元件,允許Tomcat使用某些本地資源來提高效能,相容性等。

具體而言,Apache Tomcat本地庫為Tomcat提供了對Apache Portable Runtime(APR)庫的網路連線(套接字)實現和隨機數生成器的訪問。有關如何配置Tomcat以使用APR聯結器的更多資訊,請參閱Apache Tomcat文件。

APR聯結器的特點:

保持活動請求的非阻塞I / O(請求之間)

使用OpenSSL進行TLS / SSL功能(如果連結的APR庫支援)

FIPS 140-2支援TLS / SSL(如果連結的OpenSSL庫支援

如果安裝過程中出現apr和openssl軟體版本過低無法編譯的問題請檢視此連結:

升級apr*及openssl:http://blog.51cto.com/maoxiaoxiong/2051202

wget http://mirrors.shuosc.org/apache/tomcat/tomcat-connectors/native/1.2.16/source/tomcat-native-1.2.16-src.tar.gz

./configure –with-apr=/usr/bin/apr-1-config

–with-java-home=/usr/java/jdk-9.0.1/

–with-ssl=yes

–prefix=/usr/local/native

Error1:configure: error: Found APR 1.3.9. You need version 1.4.3 or newer installed.由於安裝的系統自帶apr版本過低,,需要先升級相關軟體版再重新編譯.

./configure –with-apr=/usr/apr/ –with-java-home=/usr/java/jdk-9.0.1/ –with-ssl=yes –prefix=/usr/local/native

Error2: configure: error: Your version of OpenSSL is not compatible with this version of tcnative

make install 安裝

再次編譯:

./configure –with-apr=/usr/apr/ –with-java-home=/usr/java/jdk-9.0.1/ –with-ssl=/usr/local/openssl/ –prefix=/usr/local/native

make

make install

echo “/usr/local/native/lib” >> /etc/ld.so.conf

ldconfig

ln -s /usr/local/native/lib/* /usr/java/packages/lib/

Native編譯完成並進行檢查:

重啟tomcat

#service tomcat stop ;service tomcat start

cat /usr/local/tomcat/logs/catalina.out | grep Native

15-Dec-2017 22:28:47.411 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.5.2].

顯示上面資訊,則說明tomcat-native編譯完成.:

2.2 原始碼編譯安裝mysql

MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關聯式資料庫管理系統) 應用軟體。

MySQL是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。

解決依賴及干擾

[root@node3 src]# rpm -e mysql-5.1.71-1.el6.x86_64

[root@node3 src]# rpm -e mysql-5.1.71-1.el6.x86_64

[root@node3 src]# rpm -e mysql-libs-5.1.71-1.el6.x86_64 -nodeps

tar xvf mysql-5.6.26.tar.gz

yum install -y cmake ncurses-devel

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

[root@node3 mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql/

[root@node3 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

[root@node3 mysql-5.6.26]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@node3 mysql-5.6.26]# chmod u+x /etc/init.d/mysqld 

[root@node3 mysql-5.6.26]# vim /etc/init.d/mysqld 

[root@node3 mysql-5.6.26]# vim /etc/my.cnf 

[root@node3 mysql-5.6.26]# chkconfig mysqld on

初始化資料庫

[root@node3 mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db

–defaults-file=/etc/my.cnf

–basedir=/usr/local/mysql/

–datadir=/usr/local/mysql/data/

–user=mysql

將資料庫命令連結到環境變數中

[root@node3 mysql-5.6.26]# ln -s /usr/local/mysql/bin/* /bin/

啟動資料庫

service mysqld start

安全初始化資料庫

mysql_secure_installation

回車

初始密碼

確認密碼

y

y

y

echo “export PAHT=/usr/local/mysql/bin:${PATH}” >> /etc/profile

source /etc/profile

2.3 安裝mysql-connector

通過官方提供的工具mysql-connector的實現了jsp指令碼連線到資料庫的操作

#wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz

tar xvf mysql-connector-java-5.1.45.tar.gz.gz

#cp mysql-connector-java-5.1.36-bin.jar /usr/local/tomcat/lib/

重啟tomcat服務.

#Service tomcat stop ; service tomcat start

建立測試資料庫並建立tomcat測試使用者

mysql> create database tomcat;

Query OK, 1 row affected (0.20 sec)

mysql> use tomcat

Database changed

mysql> create table test(id int,name varchar(58));

Query OK, 0 rows affected (0.30 sec)

mysql> insert into test values(1,”令狐沖”),(2,`東方不敗`),(3,`嶽不群`);

Query OK, 3 rows affected (0.02 sec)

Records: 3 Duplicates: 0 Warnings: 0

mysql> grant all privileges on tomcat.* to tomcat@”localhost” identified by “123456”;

Query OK, 0 rows affected (0.22 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.05 sec)

測試jsp連線資料庫

3.3測試文件

[root@node1 lib]# vim /usr/local/tomcat/webapps/ROOT/test.jsp

1 <%@ page contentType=”text/html;charset=utf-8″%>

2 <%@ page import=”java.sql.“%>

3 <html>

4 <body>

5 <%

6 Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();

7 String url =”jdbc:mysql://localhost/tomcat?user=tomcat&password=123456&useUnicode=true&characterEncoding=utf-8″;

8 Connection conn= DriverManager.getConnection(url);

9 Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

10 String sql=”select 
from test”;

11 ResultSet rs=stmt.executeQuery(sql);

12 while(rs.next()){%>

13 step:<%=rs.getString(1)%>

14 context:<%=rs.getString(2)%><br><br>

15 <%}%>

16 <%out.print(“Congratulations!!! JSP connect MYSQL IS OK!!”);%>

17 <%rs.close();

18 stmt.close();

19 conn.close();

20 %>

21 </body>

22 </html>

通過瀏覽器訪問資料庫:

如果apache和tomcat在沒有整合的情況下可以指定8080埠進行測試

完成tomcat和mysql通過jsp的連結操作

如果使用yum安裝的httpd服務,由於升級過openss和apr之後導致無法重啟,此時可將http服務升級之高版本或者修改配置檔案/etc/http/conf/httpd.conf中關於ldap模組註釋掉即可如下:

#LoadModule ldap_module modules/mod_ldap.so

#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/2050555


相關文章