测试 mysql 的最大连接数

本文介绍了一种使用Java代码测试MySQL数据库最大连接数的方法。通过创建大量数据库连接并查询user表,直到达到数据库连接上限,以此来确定MySQL的最大连接数。文章提供了完整的Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试 mysql 的最大连接数。

blog.youkuaiyun.com/shiyangxt/article/details/83264544  --- 原文链接

 

如果直接用 navicat 查询 mysql 的连接数,查询语句是 show status like 'Threads%';

其中的 Threads_connected 就是 mysql 的连接数

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

// 测试 mysql 的最大连接数
public class JdbcMaxTest{
	// main
	public static void main(String[] a){
		int count = 1;

		int max = 5000;
		Connection[] conn = new Connection[max];
		Statement[] stmt = new Statement[max];
		ResultSet[] rs = new ResultSet[max];

		String dbUrl = "jdbc:mysql://localhost:3306/testDB1";
		String name = "admin";
		String pwd = "123";

		try{
			Class.forName("com.mysql.jdbc.Driver").newInstance();

			for (count = 1; count < max; count++){
				conn[count] = DriverManager.getConnection(dbUrl, name, pwd);
				stmt[count] = conn[count].createStatement();
				rs[count] = stmt[count].executeQuery("SELECT * FROM user");

				while (rs[count].next()){
					//System.out.println(rs.getString(1) + " t" + rs.getString(2));
				}

				System.out.print(count + "t ");

				if(count % 20 == 0 && count > 0){
					System.out.print("\n");
				}
			}

		}catch(Exception ex){
			System.out.println("\n" + ex.toString());

			//System.out.println(count);
		} finally {
			try {
				System.out.println("\n" + "System has opened " + --count
						+ " Mysql connections.");

				System.out.println("Press Enter key to close them.");

				System.in.read();

				System.out.println("Close these Connections:");

				for(; count >= 0; count--){
					if(rs[count] != null){
						rs[count].close();
					}

					if(rs[count] != null){
						rs[count].close();
					}

					if(conn[count] != null){
						conn[count].close();

						System.out.print(count + "t ") ;

						if(count % 20 == 0 && count > 0){
							System.out.print("\n");
						}
					}
				}
			}catch(Exception ex){
				System.out.println("\n" + "Close connection exception: " + ex.toString());
			}
		}
	}
}


 

 

### 配置 MySQL 据库大连 #### 修改配置文件方式 大连的设置可以在 MySQL 的配置文件(通常是 `my.cnf` 或 `my.ini`)中进行更改[^3]。对于 Linux 系统,通常该文件位于 `/etc/mysql/my.cnf` 或者 `/etc/my.cnf`;而在 Windows 上则可能是 `C:\ProgramData\MySQL\MySQL Server X.X\my.ini`。 找到 `[mysqld]` 下面添加或修改如下参: ```ini max_connections = 500 ``` 这表示将大并发连目设定为 500。完成编辑之后保存文件,并重启 MySQL 服务让新的配置生效。 #### 动态调整方式 除了通过静态配置外,在某些版本里还可以直利用 SQL 命令动态改变此属性而无需停机操作。以 root 用户身份登录到 MySQL 控制台执行下面语句来临时增加大连至指定值: ```sql SET GLOBAL max_connections = 500; ``` 这种方式不会影响现有会话中的任何事物状态,但是当服务器被关闭再启动时又会恢复成原来默认的状态除非已经在配置文件做了相应改动。 #### 使用命令行工具 另外一种方法是在命令行下输入特定指令实现快速变更。假设用户名为 username 并且有适当权限,则可以通过以下命令在线调整大连而不必进入交互式的 shell 中去操作: ```bash mysql -uusername -ppassword -e "SET GLOBAL max_connections=500;" ``` 这里 `-p` 后面紧跟着的是密码部分,如果不想暴露明文密码的话可以选择省略它然后按提示手动输入。 #### 注意事项 在提高大连之前应该充分考虑硬件条件以及应用程序的实际需求,因为过多的同时连可能会给系统带来额外负担甚至引发性能下降等问题。因此建议逐步测试不同值下的表现情况从而找出优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值