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 ...
随机推荐
- kafka设计原理介绍
背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐 ...
- tomcat组成及工作原理
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet containe ...
- Azure ARM (4) 开始创建ARM Resource Group并创建存储账户
<Windows Azure Platform 系列文章目录> 好了,接下来我们开始创建Azure Resource Group. 1.我们先登录Azure New Portal,地址是: ...
- 为什么是梯度下降?SGD
在机器学习算法中,为了优化损失函数loss function ,我们往往采用梯度下降算法来进行优化.举个例子: 线性SVM的得分函数和损失函数分别为: ...
- Visual Studio Code编写HTML
第一步双击打开Visual Studio Code,我们发现什么也没有,但是有一个默认打开的编辑页面.我们先点击File->OpenFoldor 为什么先这么做呢,有两个原因,第一个原因假如你有 ...
- Emit学习(2) - IL - 常用指令介绍
学习Emit必不可少的, 会使用到IL中间代码. 初见IL代码, 让我有一种汇编的感觉, 让我想起了, 大学时, 学习8051的汇编语言. 多的就不扯了, 直接进入正题, OpCodes指令集是不是有 ...
- The Web server is configured to not list the contents of this directory.
部署一个ASP.NET MVC网站至一个全新的服务器Windows Server 2008 R2, 数据为MS SQL Server 2014 64bit Expression版本. 运行时,它第一次 ...
- RabbitMQ入门教程——工作队列
什么是工作队列 工作队列是为了避免等待一些占用大量资源或时间操作的一种处理方式.我们把任务封装为消息发送到队列中,消费者在后台不停的取出任务并且执行.当运行了多个消费者工作进程时,队列中的任务将会在每 ...
- Liskov替换原则
一.定义 子类型必须能替换掉它们的基类型 二.提取公共部分的方法代替继承 如果一组类都支持一个公共的职责,那么它们应该从一个公共的超类继承该职责. 如果公共的超类不存在,那么就创建一个,并把公共的职责 ...
- Sql Server中常见的数据类型
转至http://www.cnblogs.com/andy_tigger/archive/2011/08/21/2147745.html bit 整型 bit数据类型是整型,其值只能是0.1或空 ...