Mysql连接无效(invalid connection)问题及解决

目录
  • Mysql连接无效invalid connection
    • 解决的方案
  • Mysql远程连接不生效
  • 总结

Mysql连接无效invalid connection

一般连接数据库的代码库都有实现连接池,如golang语言database/sql库,其中SetConnMaxLifetime(d time.Duration)是用来设置连接池里每条连接关闭的时间,当d <= 0时,连接池里的连接永久重用,即永远都在连接池里,拿来就用,不管此连接是否真的有效(这里有问题,下面讲)。

当d > 0时,到了时间d才会关闭连接,把连接移出连接池,但这并不是时间一到就关闭,因为当连接还在使用时会等连接完成之后,等下一个清理连接周期(周期为d)时会关闭连接,移出连接池。

Mysql为了防止空闲连接过多,超过了参数mysql_connection之后会拒绝新连接,mysql会自动关闭空闭连接超过wait_timeout参数的时间,会关闭使用中超过interactive_timeout参数的连接。

由于mysql会自动关闭超时连接,所以database/sql的SetConnMaxLifetime()不能设置为永久有效,要不然连接已经被mysql关闭了,但还是拿着失效的连接使用就会报invalid connection。

解决的方案

SetConnMaxLifetime()设置的时间小于wait_timeout就行,一般建议wait_timeout/2。

Mysql远程连接不生效

记录一下,一般这种情况都是设置 mysql 表中对应 root 用户的 Host 从 localhost 改为 %,但是怎么弄都不生效,没办法只能看看 mysql 配置文件 mysqld.cnf

里面找到了一项内容如下图:

把上面箭头所指处注释后一试,还真是这个,不知道这个什么时候设置的,太无语了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL远程无法连接的一些常见原因总结

    目录 前言 原因1: 原因2: 原因3: 总结 前言 MySQL是目前非常流行的数据库之一,也是中小企业持久化存储的首选数据库. 不同于我们日常学习,在实际应用中,MySQL服务都会挂载在某台服务器上.如果MySQL部署在某台云服务器上,这样一来,操纵数据库每次都需要先连接服务器,再进入数据库操作,不是很方便. 于是,学习远程连接 MySQL 的方法是数据库在服务器上时的必修课.下面我将讲述远程连接报错的常见三种原因. 原因1: MySQL的远程访问权限未开放 如果最常见的无法远程连接问题,因为

  • mysql server 5.5连接不上的解决方法

    mysql连接不上了的解决办法,供大家参考,具体内容如下 昨天用着好好的,第二天突然连接不上了mysql数据库,并且报错: 仔细想了想原因很有可能是因为不经意间删除了mysql自带表中的一些数据信息导致的表损坏,之前也是把oracle给弄坏了..... 所以不要随便的删除系统的表信息 进入服务,找到mysql,发现服务已经停止,重新启动该服务,发现无法重启,如下 无法重启报1067 并且在dos命令中进入msyql也是不可以的 然后我去事务管理器中查看了一下系统的日志信息发现mysql出现了错误

  • MySQL连接异常报10061错误问题解决

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统(RDBMS)之一.         在尝试启动mysql 的服务器时出现Can't connect to MySQL server on '127.0.0.1' (10061) (2003)的错误信息,mysql服务器启动失败.         解决方案:开始-->services.msc(打开服务)-->在服务列表找到MySQL-->右击My

  • C3P0连接池+MySQL的配置及wait_timeout问题的解决方法

     一.配置环境 spring4.2.4+mybatis3.2.8+c3p0-0.9.1.2+Mysql5.6.24 二.c3p0的配置详解及spring+c3p0配置 1.配置详解 官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config> < default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> <property

  • 解决mysql连接超时和mysql连接错误的问题

    目录 mysql连接超时和mysql连接错误 连接MySQL错误create connection SQLException, url: jdbc:mysql://localhost:3306/*****? 解决方法 mysql连接超时和mysql连接错误 在生产环境中,偶尔且不规律的出现mysql连接超时和创建连接出错的问题: 15-09-2020 13:25:46 INFO - java.sql.SQLNonTransientConnectionException: Could not cr

  • 连接MySQL时出现1449与1045异常解决办法

    连接MySQL时出现1449与1045异常解决办法 mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法 把sql导到本地,执行存储过程 或者 查看视频报错: mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法 权限问题,授权 给 root  所有sql 权限 mysql> grant all

  • 解决MYSQL连接端口被占引入文件路径错误的问题

    今天早上打算本地win7机器上用Wampserver搭建PHP环境,把自己的小程序配置上去.下载最新的wampserver 3.0.6版本安装后,发现mysql一直无法运行,以为是wampserver版本问题,随后又下载了相关2.4,2.5等相关版本安装,依旧没有解决,主要现象是mysql命令符中输入密码回车之后没有反应,随后命令符自动消失,另外就是在PHPMyAdmin中输入密码直接出现连接超时等的三条错误提示,或者是提示无法连接.后来我直接卸载了wampserver,改用phpStudy搭建

  • mysql提示[Warning] Invalid (old?) table or database name问题的解决方法

    DROP TABLE IF EXISTS [TEMP_TABLE_NAME]; create temporary table [TEMP_TABLE_NAME] select col1,col2,... from [TABLE_NAME]; alter table [TEMP_TABLE_NAME] add unique idx_col1(col1); 经过以上操作中,多次出现该warning问题.通过查询和跟踪调试源码,有以下线索和处理方式: mysql的"[Warning] Invalid

  • mysql连接过多和死掉以及拒绝服务的解决方法

    mysql连接过多导致总是死掉,后来网上搜索发现此文自Mysql 5.x的某个版本之后,Mysql的自动关闭空闲连接的特性修改了,如果一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决:)处理方法:1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性

  • php 连接mysql连接被重置的解决方法

    新装了windows7 64位系统后,配备布置许多东西,总是有这样的那样子的拂意,昨天在开始配备布置php+apache的时候,echo phpinfo()完全没问题,但是一朝连接mysql就会呈现页面被重置的问题.原来问题不大,但是我却走到了误区: 1.我怀疑64位系统的问题: 2.我感觉代码靠不住,因为另外都能执行,轻率写个 substr()也是能显示出来的 ...... 这个问题纠结了我一天多,但是还是没解决到,无奈之下 我用" php 连接 mysql 连接被重置 "为关键字举

  • PyQt5连接MySQL及QMYSQL driver not loaded错误解决

    一.连接语句 from PyQt5.QtSql import QSqlDatabase db=QSqlDatabase.addDatabase('QMYSQL') db.setHostName('localhost') db.setDatabaseName('dbwork') db.setUserName('users') db.setPassword('ZDSYS') db.setPort(3306) db.open() 二.错误解决 1.提示1:QMYSQL driver not loade

  • 解决Navicat for MySQL 连接 MySQL 报2005错误的问题

    上篇文章给大家介绍过解决Navicat for Mysql连接报错1251的问题(连接失败),今天介绍Navicat for MySQL 连接 MySQL 报2005错误的问题. 关于Navicat for MySQL 连接 MySQL 报2005 -Unknown MySQL server host 'localhost'(0)错误的情况与解决方法 2005报错原因: 在本地MySQL的服务启动后,由于Navicat的一些功能需要联网才可以使用,由于报错提示说连接不上主机的localhost,

  • Dbeaver连接MySQL数据库及错误Connection refusedconnect处理方法

    目录 一.正常安装dbeaver 二.连接MySQL 三.Connection refused:connect处理 四.连接MySQL成功 一.正常安装dbeaver 进入dbeaver官网,找到安装包,点击“windows 64 bit (installer)”下载即可 .exe执行文件入下图示,右键单击,以管理员身份运行 选中文,直接next到结束,具体安装见如下博客. (3条消息) DBeaver安装及使用手册_笨菜先飞的博客-CSDN博客_dbeaver安装教程 安装完成,打开dbeav

随机推荐