日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/3/15 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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&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查看客户端连接信息(连接数、进程等)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。