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

MySQL连接方式的说明

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

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

TCP连接(Linux,Windows): 


目标


启动选项


默认值


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 下

时间: 2024-09-20 19:48:35

tomcat通过socket连接MySQL,不再占用服务端口【linux】的相关文章

socket-PHP SOCKET如何释放所占用的端口

问题描述 PHP SOCKET如何释放所占用的端口 请问一下Linux上我用socket(在windows正常)但是每次都提醒占用端口 需要释放 所以我试了下在绑定前加上socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) 但是这样不但不行 而且客 解决方案 linux下,socket端口不能释放 解决方案二:

php-PHP SOCKET如何释放所占用的端口

问题描述 PHP SOCKET如何释放所占用的端口 请问一下Linux上我用socket(在windows正常)但是每次都提醒占用端口 需要释放 所以我试了下在绑定前加上socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) 但是这样不但不行 而且客 解决方案 linux下,socket端口不能释放

Tomcat使用JNDI连接MYSQL数据库

环境: jdk1.4 + Tomcat 5 一.环境变量: PATH:   C:/j2sdk1.4.2/bin; JAVA_HOME:  C:/j2sdk1.4.2/ 注:仅此两个. 二.JDBC 驱动 COPY 相应的JDBC驱动程序到Tomcat5/common/libSQL Server 2000(或mysql) for JDBC/lib/目录下三个.jar :msbase.jarmssqlserver.jarmsutil.jar  三.虚拟目录与连接池 假设要在D:/JsgTest建自己

解决Linux下tomcat连接MySQL数据库问题

mysql|解决|数据|数据库|问题 解决Linux下tomcat连接MySQL数据库 在linux下,开发一个web应用,期间调用数据库时总是不成功,如果单独写一个类,并编译执行访问数据库,正常,但是用web应用来调这个类连接数据库,就会出现错误:com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION **

MySQLWorkbench使用SSH Tunnel连接MySQL数据库

现在连接一个IDC的MySQL服务器时,由于网络的隔离性,需要ssh到一台跳板机上才能直接访问MySQL,而我想在本地使用MySQLWorkbench这样的客户端直接连接到MySQL中.其解决方案是,先用ssh命令建立一个SSH Tunnel,然后MySQLWorkbench只需要连接本地的一个端口,即可与对应的远程MySQL建立连接. 假设跳板机为:192.168.1.1 (它可以与MySQL连通) MySQL IP为:10.1.0.58 端口为:3306 建立SSH Tunnel的命令如下:

Internet服务端口测试程序的设计与实现

一.程序的实用背景 上网的朋友越来越多,遇到的问题也越来越多,最常见的就是关于域名服务器(DNS).邮件服务(SMTP)和POP3的配置问题.例如,选用哪一个DNS,202.96.0.133还是202.96.26.243?记不清ISP的邮件服务器和域名服务器的IP地址,202.96.26.243还是245? 另外一个问题就是,我们在下载文件的时候,往往面临从多个不同主机下载的选择(象sunsite有数十个镜像站点).那么,选择哪一个站点进行下载是最快的呢? 笔者为此编写了一个应用程序,试图对In

查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程

利用快捷键win+R键打开运行窗口.输入cmd回车打开命令提示符窗口 1:查看本机开放的端口,即已被占用的端口号.命令:netstat -an 部分结果列表:Proto  Local Address          Foreign Address        StateTCP    0.0.0.0:135            0.0.0.0:0             LISTENINGTCP    0.0.0.0:3473           0.0.0.0:0            

操作-【急】问一个关于java web中tomcat连接mysql数据库的问题(问题点数40无满意结贴

问题描述 [急]问一个关于java web中tomcat连接mysql数据库的问题(问题点数40无满意结贴 我是计科专业在做毕业设计没接触过java,做一个在线答疑系统,在csdn上下了一个jsp+struts2+spring的感觉比较全的系统,下载地址为http://download.csdn.net/detail/hmshust/6950301,该文是0积分的,下载的如图![图片说明](http://img.ask.csdn.net/upload/201505/07/1431008698_8

java socket手机通信-关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决

问题描述 关于java的问题:手机用socket连接电脑的服务端时老出现文件找不到的错误,求解决 30C 解决方案 也可以私聊我.扣扣1944687725 解决方案二: 解决方案三: 你那个斜杠是不是写反了 passwdinput.dat 解决方案四: 你仔细看看出错的提示, 是读文件的时候找不到,对应的代码是在ServerThread.java的51行然后,你把路径改为绝对路径试一试,如果可以了,就是你相对路径的根目录不对.保证passwd文件夹在你的执行目录下 解决方案五: 右键 prope