1.内存被其它进程大量占用,或数据库本身数据量太大导致mysql宕机
2.程序访问mysql后没有执行mysql.close,大量占用资源导致宕机。
群里提出的这个问题主要是mysql5.5以上的,基本上不是mysql宕机。因为5.5以上的数据库会有个链接超时配置。
默认是28800秒也就是8个小时,会断开连接。
解决方案:
1.修改mysql配置。
如果是linux服务器编辑mysql.cnf 执行vi /etc/mysql.cnf
找到[mysqld] 在底下添加
interactive_timeout=28800000
wait_timeout=28800000
多加了三个0 也就是8000个小时。基本就不用考虑连接超时
修改完配置后,记得重启mysql服务。
2.程序方面。
以java程序为例(抱歉只会java)
打开Spring配置文件,修改applicationContext.xml
在datasource bean底下添加
用来指定测试连接所使用的SQL语句。
如果测试发现连接已经close,那么将自动重建连接。
<property name="houseKeepingTestSql">
<value>SELECT 1</value>
</property>
用来指定在使用连接之前要进行测试。
<property name="testBeforeUse">
<value>true</value>
</property>
排查问题建议连接不上,请查找到底是哪些页面会出现这个问题。连接使用完成后及时释放.怀疑是你请求的连接太多,导致mysql达到了最大连接数,拒绝你的新连接.有可能是你每次连接完成都没有使用mysql_close来关闭连接。
尽量避免在循环中不停的连接数据库,查看mysql的日志,或许能查到一些线索。
data文件夹必须为空。
在dos命令行中进入MySQL安装目录下的bin目录。
输入命令mysqld --initialize-insecure --user=mysql。
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)