您的位置:首页 > 运维架构 > Tomcat

2、实现tomcat+mysql实现jps的连接

2017-12-14 11:46 253 查看
二 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat native jdk