mysql linux 客户端_MySQL—Linux查看客户端连接信息(连接数、进程等)
介绍
在开发或者运维过程中,我们连接数据库的时候突然会遇到"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&&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查看客户端连接信息(连接数、进程等)相关推荐
- MySQL—Linux查看客户端连接信息(连接数、进程等)及SpringBoot配置数据库模板
关注微信公众号:CodingTechWork,一起学习进步. 介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息 ...
- linux查看客户端连接,MySQL—Linux查看客户端连接信息(连接数、进程等)
介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息:这时我们就需要排除一下是哪些程序客户端连接较多而没有释放. 查看 ...
- Linux系统下锐捷客户端连接方法
Linux系统下锐捷客户端连接方法 近来学习Linux,但是学校的网络是锐捷的很蛋疼,不想买无线的校园网,只好插上网线看看锐捷的Linux客户端是怎么用的. 百度一波之后找到了一堆教程,然后差不多是挨 ...
- Redis查看客户端连接
单个实例查看客户端连接较为简单 client list 现在手上拿到几台物理机,每台物理机部署了100个实例,由于是以前遗留下来的实例,不知道能否下线,想知道这批机器是否有人使用? 如果想知道有没有人 ...
- linux 上oracle已经启动 但是客户端无法连接,Oracle 客户端连接排错
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决.下面列出几种常见的连接问题 1. ORA----12541: TN ...
- linux redis 查看客户端连接数量,Redis如何处理客户端连接?
本文主要介绍了 Redis 处理客户端连接的一些内部实现机制,包括连接处理.超时.缓冲区等一系列内容.(注:本文所述内容基于 Redis2.6 及以上版本.) 连接的建立 Redis通过监听一个 TC ...
- Linux客户端权限,linux用户与权限使用方法
1.管理用户组说明 RHEL系统中普通用户和组的ID默认从500开始,0~499作为系统保留. 2.命令行管理用户 · 1)使用useradd创建用户 用法:useradd [options] use ...
- 【Linux:CentOS7】查看JDK版本信息报错解决
配置完java环境后,查看java版本信息报错,java -version /lib/ld-linux.so.2: bad ELF interpreter 运行命令:yum install glibc ...
- mysql++pc客户端_Mysql超详细安装配置+客户端连接
下载 选择直接下载 解压 我将Mysql解压到:E:\devSofts\mysql-8.0.21-winx64\mysql-8.0.21-winx64地址,后面的内容和这相关,可以根据你的实际情况稍作 ...
最新文章
- 开发Android必知的工具
- 为什么要重写 hashcode 和 equals 方法?
- Suffix Zeroes
- 让自己的user能够看到S4 product master这个tile
- TypeError: Object of type ‘datetime‘ is not JSON serializable
- react-native中的动画
- Linux设备驱动模型之platform(平台)总线详解
- 程序员玩连连看的正确姿势
- 第2讲 ZF2.4 最新框架搭建
- 身体健康思维导图模板
- 基于巴法云平台的天猫精灵控制开关
- python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》...
- 一图看懂编程语言分类
- Dreamweaver中如何设定文字——大小、字体、颜色
- 饿了么资深架构师分享云上基础架构演进
- brew安装nvm报nvm command not found解决方案
- 技巧:屏幕長亮 兩種方式
- char类型数据说明
- C++中sprintf_s与sprintf的不同
- 唇语识别技术的开源教程,听不见声音我也能知道你说什么!