扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
C3P0连接池连接mysql有时会出现如下错误:
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站建设、麟游网络推广、微信平台小程序开发、麟游网络营销、麟游企业策划、麟游品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供麟游建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
这是C3P0配置的超时时间和mysql超时时间不一致导致的,C3P0为60秒超时,mysql为30秒超时,在30-60之间的时间mysql已经断开连接,而C3P0还维持连接,再次发送请求就会报上面的错误。
解决方法:
1、修改C3P0的maxIdleTime参数为30。
2、修改mysql的wait_timeout参数为60秒。不停机状态下进入mysql命令行,执行set global wait_timeout=60;
通过mysql命令行模式下动态修改
show variables like "%time_zone%";
查看时区
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
#time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区
修改时区
set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+8:00'; ##修改当前会话时区
flush privileges; #立即生效
my.cnf默认都是没有的,但其实你装的时候会在/usr/share/mysql
这个路径下有类似的,根据你数据库大小不同的推荐配置,有my-small.cnf,my-large.cnf等等,如果需要配置文件,选择一个拷到/etc下,重命名为my.cnf即可,默认超时时间等都在这里进行配置,这样启动会就会是你设置的默认值了
如果你在命令行里改,只会修改当前会话,退出重进或者重启mysql之后就会变回默认值
应用场景:
1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;2、在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录修改时间;实现方式:
1、将字段类型设为 TIMESTAMP
2、将默认值设为 CURRENT_TIMESTAMP
举例应用:
1、MySQL 脚本实现用例
--添加CreateTime 设置默认时间 CURRENT_TIMESTAMPALTER TABLE `table_name`
ADD COLUMN `CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ;--修改CreateTime 设置默认时间 CURRENT_TIMESTAMPALTER TABLE `table_name`
MODIFY COLUMN `CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ;--添加UpdateTime 设置 默认时间 CURRENT_TIMESTAMP 设置更新时间为 ON UPDATE CURRENT_TIMESTAMPALTER TABLE `table_name`
ADD COLUMN `UpdateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间' ;--修改 UpdateTime 设置 默认时间 CURRENT_TIMESTAMP 设置更新时间为 ON UPDATE CURRENT_TIMESTAMPALTER TABLE `table_name`
MODIFY COLUMN `UpdateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间' ;2、MySQL工具设置
mysql目录下的 my.ini 可以修改 配置
max_connections=100 表示的是最大连接数
query_cache_size=0 表示查询缓存的大小
table_cache=256 表示表格的缓存
tmp_table_size=18M 表示临时表的缓存
thread_cache_size=8 表示线程的缓存
超时时间可以在连接字符串中写好 下面给出了一个实例
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;default command timeout=20;
其他 连接字符串的实例给你一个连接
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流