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 下
tomcat通过socket连接MySQL,不再占用服务端口【linux】的更多相关文章
- tomcat之jsp连接mysql数据库
一.下载并部署mysql连接类 首先下载mysql连接类,下载地址https://dev.mysql.com/downloads/connector/j 如图所示,选择第一个箭头所指的平台无关版本,然 ...
- tomcat使用jdbc连接mysql出现的错误
出现的错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 前提: 已经在工程的build path中添加了驱动包(mysql-conn ...
- Ubuntu下使用C语言连接Mysql 8.0客户端教程
Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ...
- 大话tomcat之tomcat连接mysql
研究主题:tomcat连接mysql 一.tomcat连接mysql的两种连接方式:简单连接(不使用连接池)使用tomcat连接池 二.简单分析:(简介部分摘自一篇博客,觉得写得非常赞,读了非常有快感 ...
- 2-22-实现jsp通过tomcat连接mysql
所有软件的版本如下: MySQL-Connector-Java: mysql-connector-java-5.1.36 Tomcat: apache-tomcat-8.0.26 JDK: jdk-8 ...
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
mysql,mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误: ERROR 2002 (HY000): Can't connect to local MySQL se ...
- PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)
如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...
- linux服务器初步印象,远程连接mysql数据库,传输文件,启动/关闭tomcat命令
1.连接服务器数据库,以Navicat连接mysql为例 1.1 常规 新建连接,连接名,主机名或ip地址:127.0.0.1 端口:3306用户名:(服务器端)root密码:(服务器端)pwd 1. ...
- Ubuntu14连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”
起因:我在Ubuntu14 64位系统中安装mysql后,后来通过mysql -u用户名 -p密码 的命令连接 Mysql数据库时,报错"can't connect to local mys ...
随机推荐
- DRA(Data Recovery Advisor)的使用
关于DRA的官方描述: The simplest way to diagnose and repair database problems is to use the Data Recovery Ad ...
- 关注经典:CSS Awards 获奖网站作品赏析《第一季》
每天都有很多新的网站推出,其中不乏一些设计极其优秀的作品.这个系列的文章,我为大家挑选了2012年赢得 CSS Awards 大奖的50个最佳网站.这些鼓舞人心的网站作品代表了网页设计的最高水平,相信 ...
- Android中动态更新ListView(转)
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...
- java中遇到过的String的一些特性
1.string对象是final的? String str="asdfdf"; str.replace("as",""); System.o ...
- UI/UE/ID/UED/UCD的区别
简述: UI (User Interface):用户界面 UE (User Experience):用户体验 ID (Interaction design):交互设计 UID (User Interf ...
- Java魔法堂:finalize函数
一.finalize与GC 在GC第一次进行可达性分析时会将不可达而且该对象所属类重写finalize方法和finalize方法重未被执行过的对象追加到F-Queue当中,然后JVM会自动开启一个低优 ...
- React-Native 给客户端来个「同音词模糊搜索」
APP上线一段时间有用户反应说不方便找东西,其实APP的数据不大也就三四百条而以,但受限于手机端展示区域太小.信息大爆炸,大家也基本上不会去记具体的名称都是根据模糊的印象进行搜索而且现在大家基本都用拼 ...
- DirectX.Capture Namespace
DirectX.Capture Class Library DirectX.Capture Namespace The DirectX.Capture namespace contains cla ...
- C语言学习018:strdup复制字符串数组
在C语言学习005:不能修改的字符串中我们知道字符串是存储在常量区域的,将它赋值给数组实际是将常量区的字符串副本拷贝到栈内存中,如果将这个数组赋值给指针,我们可以改变数组中的元素,就像下面那样 int ...
- 使用CKplayer插件在网页中嵌入视频的方法(常用笔记2)
在做网站中有时候我们需要在网页中嵌入视频,一般视频嵌入有以下几种方法: 1. 优酷代码嵌入 优点:简单,方便,可靠. 缺点:有广告,现在的网站非常注重用户体验,如果打开一个在线视频是有长广告的一定会崩 ...