介绍

在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息;这时我们就需要排除一下是哪些程序客户端连接较多而没有释放。

查看mysql数据库连接数

查看最大连接数

show variables like 'max_connections';

查看已使用连接数

show status like 'max%connections';

发现已使用的已经大于最大连接数。

更改最大连接数

全局set(临时)

这种方式重启mysql后会失效。

set GLOBAL max_connections=1000;

mysql> set GLOBAL max_connections=1000;

Query OK, 0 rows affected (2.00 sec)

查看最大连接数

查看已使用连接数

发现由原来的152变成了159,可以更多的连接。

配置文件修改

修改/etc/my.cnf配置文件

在[mysqld]块中修改或添加:max_connections=1000,重启mysql。

查看数据库连接情况

查看数据库连接IP列表及数量

select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

查看数据库连接数

select count(*) from information_schema.processlist;

查看进程列表

(1)列出前100条

show processlist;

(2)列出所有

show full processlist;

(3)各列的含义

Id:该进程程序登录mysql时,系统分配的连接id,即为connection_id。

User:该进程程序连接mysql的用户。

Host:该进程程序连接mysql的ip。

db:该进程程序连接mysql的某个数据库。

Command:该进程程序执行的命令,取值为休眠(Sleep)、查询(Query)、连接(Connect)等。

Time:Command状态持续的时间,单位为秒。

State:使用当前的sql语句的状态,如starting。

Info:显示sql语句,如当前执行了show full processlist。

查看进程

查看连接数据库的java进程

数据库端口为3306,查看连接该端口的java程序进程

netstat -anp | grep 3306 | grep java

查看进程对应的程序

ps -ef | grep 进程号

统计某个进程连接数

netstat -anp | grep 3306 | grep 进程号 | wc -l

通过wc -l统计出某个进程的连接数。

通过上述一系列操作,我们大概就能知道哪个程序服务连接数较多了。如上述的23818这个进程的连接数最多,为136。这时就需要考虑是否程序中对数据库连接没有做一些限制。

Java程序配置数据库连接池

# 配置数据库【需要按照具体环境修改】

spring.datasource.url: jdbc:mysql://ip1:3306,ip2:3306,ip3:3306/dbName?useSSL=false&useUnicode=true&amp&characterEncoding=utf-8

# Username and password

spring.datasource.username: userA

#ENC()前缀为数据库密码密文处理,测试时可直接配置数据库密码如:spring.datasource.password =123456

spring.datasource.password: ENC(0cHjeDIecX6DZd+T8kfNuukmfdfdsfd)

#spring.datasource.password: 123456

# 指定获取连接时连接校验的sql查询语句

spring.datasource.validation-query: SELECT 1 FROM DUAL

# 配置获取连接等待超时的时间

spring.datasource.max-wait: 10000

# 获取连接时候验证,会影响性能

spring.datasource.test-on-borrow: true

# 配置获取连接池中最大空闲数

spring.datasource.max-idle: 30

# 配置获取连接池中最大活跃数

spring.datasource.max-active: 100

# 指定连接池中连接的最大生存时间,毫秒单位

spring.datasource.max-lifetime: 300000

# 指定数据库连接驱动

spring.datasource.driverClassName: com.mysql.jdbc.Driver

# 指定数据库类型为MYSQL

spring.jpa.database: MYSQL

# 查询时是否显示日志,无需修改

spring.jpa.show-sql: false

# Hibernate ddl auto (create, create-drop, update)

spring.jpa.hibernate.ddl-auto: update

# Naming strategy

spring.jpa.hibernate.naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy

# stripped before adding them to the bean manager)

#spring.jpa.properties.hibernate.dialect: org.hibernate.dialect.MySQL5Dialect

#spring.jpa.properties.hibernate.dialect: com.xxx.yyy.demo.entity.MySQL5DialectUTF8

# 字段无修改命名

spring.jpa.hibernate.naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

# 遇到大写字母 加”_”的命名

# spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

jasypt:

encryptor:

password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

注意:其中的spring.jpa.properties.hibernate.dialect: com.xxx.yyy.demo.entity.MySQL5DialectUTF8即为数据库生成表时为utf-8的编码。

package com.xxx.yyy.demo.entity;

import org.hibernate.dialect.MySQL5InnoDBDialect;

/**

* 自动建表(字符集utf-8)

*/

public class MySQL5DialectUTF8 extends MySQL5InnoDBDialect {

@Override

public String getTableTypeString() {

return " ENGINE=InnoDB DEFAULT CHARSET=utf8";

}

}

mysql linux 客户端_MySQL—Linux查看客户端连接信息(连接数、进程等)相关推荐

  1. MySQL—Linux查看客户端连接信息(连接数、进程等)及SpringBoot配置数据库模板

    关注微信公众号:CodingTechWork,一起学习进步. 介绍   在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息 ...

  2. linux查看客户端连接,MySQL—Linux查看客户端连接信息(连接数、进程等)

    介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息:这时我们就需要排除一下是哪些程序客户端连接较多而没有释放. 查看 ...

  3. Linux系统下锐捷客户端连接方法

    Linux系统下锐捷客户端连接方法 近来学习Linux,但是学校的网络是锐捷的很蛋疼,不想买无线的校园网,只好插上网线看看锐捷的Linux客户端是怎么用的. 百度一波之后找到了一堆教程,然后差不多是挨 ...

  4. Redis查看客户端连接

    单个实例查看客户端连接较为简单 client list 现在手上拿到几台物理机,每台物理机部署了100个实例,由于是以前遗留下来的实例,不知道能否下线,想知道这批机器是否有人使用? 如果想知道有没有人 ...

  5. linux 上oracle已经启动 但是客户端无法连接,Oracle 客户端连接排错

    要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决.下面列出几种常见的连接问题 1.    ORA----12541: TN ...

  6. linux redis 查看客户端连接数量,Redis如何处理客户端连接?

    本文主要介绍了 Redis 处理客户端连接的一些内部实现机制,包括连接处理.超时.缓冲区等一系列内容.(注:本文所述内容基于 Redis2.6 及以上版本.) 连接的建立 Redis通过监听一个 TC ...

  7. Linux客户端权限,linux用户与权限使用方法

    1.管理用户组说明 RHEL系统中普通用户和组的ID默认从500开始,0~499作为系统保留. 2.命令行管理用户 · 1)使用useradd创建用户 用法:useradd [options] use ...

  8. 【Linux:CentOS7】查看JDK版本信息报错解决

    配置完java环境后,查看java版本信息报错,java -version /lib/ld-linux.so.2: bad ELF interpreter 运行命令:yum install glibc ...

  9. mysql++pc客户端_Mysql超详细安装配置+客户端连接

    下载 选择直接下载 解压 我将Mysql解压到:E:\devSofts\mysql-8.0.21-winx64\mysql-8.0.21-winx64地址,后面的内容和这相关,可以根据你的实际情况稍作 ...

最新文章

  1. 开发Android必知的工具
  2. 为什么要重写 hashcode 和 equals 方法?
  3. Suffix Zeroes
  4. 让自己的user能够看到S4 product master这个tile
  5. TypeError: Object of type ‘datetime‘ is not JSON serializable
  6. react-native中的动画
  7. Linux设备驱动模型之platform(平台)总线详解
  8. 程序员玩连连看的正确姿势
  9. 第2讲 ZF2.4 最新框架搭建
  10. 身体健康思维导图模板
  11. 基于巴法云平台的天猫精灵控制开关
  12. python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》...
  13. 一图看懂编程语言分类
  14. Dreamweaver中如何设定文字——大小、字体、颜色
  15. 饿了么资深架构师分享云上基础架构演进
  16. brew安装nvm报nvm command not found解决方案
  17. 技巧:屏幕長亮 兩種方式
  18. char类型数据说明
  19. C++中sprintf_s与sprintf的不同
  20. 唇语识别技术的开源教程,听不见声音我也能知道你说什么!

热门文章

  1. PSO-LSSVM算法及其MATLAB代码
  2. ustc小道消息20211223
  3. explicit构造函数
  4. 3DSlicer23:Module-Create Loadable
  5. 戏说 Windows GDI (3)
  6. SQL Server数据库管理常用SQL和T-SQL语句
  7. go语言离线查看说明文档
  8. 从源码安装GDB-8.1
  9. stm32 输入捕获学习(一)
  10. 构建知识图谱,让自己更值钱