1. 即使在创建Mysql时url中加入了autoReconnect=true参数,一但这个连接两次访问数据库的时间超出了服务器端wait_timeout的时间限制,还是会CommunicationsException: The last packet successfully received from the server was xxx milliseconds ago.
2. 服务器端的参数可以用
show global variables like 'wait_timeout';
set global wait_timeout=10;
来进行设置,但是wait_timeout值不应该设的太高.
3. 较好的策略是对处于idle状态的connection定时发送一个sql,来刷新服务器上的时间戳.这可以使用c3p0r的连接池.http://bzhang.iteye.com/blog/321832
4. 对于tomcat的server.xml中使用的连接池,
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html,
http://commons.apache.org/dbcp/configuration.html使用DBCP的连接池可以采用
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"
username="root" password="test" maxActive="500" maxIdle="10"
maxWait="-1" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="10000" />
4.1 设置validationQuery,这样每次borrow(默认为开启)时会通过这个sql校验连接的有效性,但是增加了时间.
4.2 设置timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="10000" 依赖evictor thread线程来把超时的连接关闭.
4.3 设置testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" validationQuery="select 1" 使得定时去用query检测处于idle状态的连接,也就刷新了服务器端的时间.
5.每次提交的最大packet大小
show global variables like 'max_allowed_packet';
set global max_allowed_packet=1024*1024;
6. SQLyog 中连接参数的设置
6.1 在SQLyog中的设置 set autocommit=0,这样当前连接的自动提交为false,可以控制事务了.
6.2 begin; 事务开始
6.3 select * from test where 1=1 and id =1 for update;这样就把选到的记录行锁上了,再开一个SQLyog,也执行以上相同的操作,就会一直wait在那里.
6.4 commit; 提交
6.5 rollback; 回滚
6.6 set autocommit=0;后应该加上
set transaction isolation level read committed;
这样其它客户端就能看到commit的数据,
疑问:
如果不设置set transaction isolation level read committed;如果两个客户端都select 相同的数据,一个客户端修改然后提交,另一个客户端不提交当前事务的前提下,去执行select ,取不到另一客户端提交的数据,不知道SQLyog默认的事务级别是什么样的.
7. SQLyog中查看mysql的状态,show global variables like '%lock%'; 是个好方法.对于事务锁(例如for update)报Lock wait timeout exceeded ,只能通过修改my.ini文件innodb_lock_wait_timeout = 100;才能生效.
8. linux下修改用户密码 mysqladmin -u root password "new_pass"
分享到:
相关推荐
serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false username: root password: 123456 默认用户名和密码为 root / 123456 默认数据库名为:...
useUnicode=true&characterEncoding=GB2312&autoReconnect=true jdbc.username.mysql=root jdbc.password.mysql=root 3、 Web容器:tomcat6.x 4、 页面访问路径: 论坛首页: http://localhost:8080/bbs 后台管理...
maxWait="10000" username="(此处填你的数据库用户名)" password="(此处填你的数据库密码)" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/ccs?autoReconnect=true" /> ...
autoReconnect=true&characterEncoging=utf8&zeroDateTimeBehavior=convertToNull 3. 完整的配置参数参考intouch2.war!\WEB-INF\config\config.xml 4. 配置文件config.xml中的mail.upflow.com换成实际的...
一.开发环境 IDEA + JDK8 + MySQL5.7 + navicate 二.技术栈 Springboot+Mybatis+layui 三....数据库地址url修改为 spring.datasource.url=jdbc:mysql://localhost:3306/score?...autoReconnect=true&use
autoReconnect=true <property name="user">root <property name="password">password <property name="initialPoolSize">10 <property name="minPoolSize">10 <property name="maxPoolSize">20 ...
修改mysql 8.0版本使用 server.servlet.context...characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8 db.user=root db.password=123456
<Resource driverClassName=...autoReconnect=true" />
OpenAMEE 平台 在本地运行平台 在 settings.xml 中创建一个 Maven 配置文件 ...autoReconnect=true & autoReconnectForPools=true & useCompression=false < rabbitmq>localhost</ rabbitmq>
dbexport db导出库到定界的压缩输出。 默认包括uberjar中的mysql jdbc驱动程序。 有关已编译的发行版,请参见release文件夹用法键入java -Xmx2048 -jar ...connectTimeout=0&socketTimeout=0&autoReconnect=true
在Docker上使用MySQL docker运行--name some-mysql -h localhost -p 3306:3306 -e MYSQL_ROOT_PASSWORD = sifre -d mysql 示例用户和角色(运行sql命令...autoreconnect=true" password: "sifre" username: "root
数据库对象 Java 轻量级库,用于在基于 JDBC 的关系数据库中存储和... autoReconnect=true maxReconnects=3 用法 定义一个实体: @DbEntity(name = "user") public class User { ..... } 定义一个属性: @Db
autoReconnect=true&useOldAliasMetadataBehavior=true" 中的ofbiz修改为opentaps //opentaps为创建的数据库名字 jdbc-username="ofbiz" 和 jdbc-password="ofbiz" 中的ofbiz修改为mysql上创建了的用户名和密码...
#demo中有一个对数据库的简单操作,数据库链接句柄net.pocrd.demo.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?autoReconnect=true&useUnicode=true&characterset=utf-8#数据库用户名...
autoReconnect=true&useSSL=false " export SPRING_DATASOURCE_USERNAME= " springuser " export SPRING_DATASOURCE_PASSWORD= " ThePassword " 要求 Java JDK 可选的: Mysql(仅在需要持久性数据存储时才需要。...
使用Struts的Action来对数据库进行增、删、改、查四项操作 <br/>1、数据库MySQL,创建数据库 Pagination MySQL.sql用来创建表结构 <br/>连接方式有两种,一种直接JDBC,一种通过连接池,代码中有说明...
1、数据库MySQL,连接方式有两种,一种直接JDBC,一种通过连接池,代码中有说明 用户root 密码password 不同的进行相应的改变。 <br/>Tomcat数据库连接池配置: Server.xml 增加如下内容:...
没问题的BUG管理系统(开发版) 此项目是正在开发的一个BUG管理系统,提供了基本的bug管理功能,基本功能如下: 1,项目基本信息维护(创建...characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&all
autoReconnect=true&useUnicode=true&characterEncoding=utf-8 <property name="username"> <value>empty <property name="password"> <value>empty 在dataSourceConfig.properties中配置数据库...
useUnicode \ = true&characterEncoding \ = utf-8&autoReconnect \ = true 如果要运行此Web项目,则应创建一个相同的数据库,该数据库具有hbut_admin,hbut_class,hbut_room,hbut_student,hbut_teacher,hbut_...