tomcat通过socket连接MySQL,不再占用服务端口【linux】

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式)、PIPE和SHARED MEMORY连接方式。

MySQL连接方式的说明

http://icbm.iteye.com/blog/1840673

MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式)、PIPE和SHARED MEMORY连接方式。 
各连接方式的服务器、客户端启动选项,及连接默认值见下表: 

TCP连接(LinuxWindows): 

目标

启动选项

默认值

SERVER

--port=PORT

3306

CLIENT

--protocol=TCP --port=PORT

3306

SOCKET连接(Linux): 

目标

启动选项

默认值

SERVER

--enable-named-pipe --socket=SOCKET

/tmp/mysql.sock

CLIENT

--protocol=SOCKET --socket=SOCKET

/tmp/mysql.sock

PIPE连接(Windows): 

目标

启动选项

默认值

SERVER

--enable-named-pipe --socket=SOCKET

MYSQL

CLIENT

--protocol=PIPE --socket=SOCKET

MYSQL

SHARED MEMORY连接(Windows): 

目标

启动选项

默认值

SERVER

--shared-memory --shared-memory-base-name=MEMORY

MySQL

CLIENT

--protocol=MEMORY --shared-memory-base-name=MEMORY

MySQL

下面说明一下在Linux平台下使用socket形式的具体步骤,这样就可以不用3306的mysql服务端口了

junixsocket

https://code.google.com/p/junixsocket

junixsocket-1.3-bin.tar

junixsocket-1.3.jar

junixsocket-mysql-1.3.jar

tomcat的配置

由于dbcp,c3p0的连接池不支持这个,因此使用jdbc的连接池配置,具体的参考文档见

https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

applicationContext.xml

<context:property-placeholder

ignore-unresolvable="true" location="classpath:/application.properties" />

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"

destroy-method="close">

<!-- Connection Info -->

<property name="driverClassName" value="${jdbc.driver}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

<property name="defaultCatalog" value="${jdbc.defaultCatalog}" />

<property name="dbProperties">

<props>

<prop key="socketFactory">org.newsclub.net.mysql.AFUNIXDatabaseSocketFactory</prop>

<prop key="junixsocket.file">/tmp/mysql.sock</prop>

</props>

</property>

<bean id="sessionFactory"

class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"

p:dataSource-ref="dataSource">

<!-- mapping的配在可以用spring提供的自动扫描包 -->

<property name="packagesToScan" value="cn.csbit.**.model" />

<property name="hibernateProperties">

<props>

<prop key="javax.persistence.validation.mode">none</prop>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

<prop key="hibernate.show_sql">false</prop>

<prop key="hibernate.format_sql">false</prop>

</props>

</property>

</bean>

和dbcp的区别

application.properties

#mysql database setting

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://?useUnicode=true&characterEncoding=utf-8&useLocalSessionState=true&autoReconnect=true

jdbc.username=***

jdbc.password=***

jdbc.defaultCatalog=***

jar包和运行库

tomcat-jdbc.jar

tomcat-juli.jar

tomcat-juli-adapters.jar

junixsocket-1.3-bin.tar中lib-native拷贝到 /opt/newsclub 下

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
关系型数据库 MySQL Apache
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
mysql5.7 本地计算机上的mysql 服务启动后停止 的问题解决
11 0
|
24天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
25 1
|
28天前
|
Linux
linux查看应用对应的端口
linux查看应用对应的端口
16 0
|
29天前
|
网络协议 Linux 网络安全
linux7打开、关闭端口
linux7打开、关闭端口
40 0
|
29天前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
36 0
|
1月前
|
网络协议 Linux C语言
Linux实现socket网络通信
Linux实现socket网络通信
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
14天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
38 6
|
1月前
|
存储 安全 网络协议
使用 firewall-cmd 管理 Linux 防火墙端口
本文将介绍如何使用 firewall-cmd 工具在 Linux 系统中进行简单端口管理,包括开放、查询、关闭等操作。通过实例展示相关命令的用法,希望能对大家有所帮助。
136 0
|
1月前
|
弹性计算 关系型数据库 MySQL
阿里云ECS使用docker搭建mysql服务
阿里云ECS使用docker搭建mysql服务
152 1