javajdbc连接url中mysql系统变量的更改不会生效

dluptydi  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(380)

在mysql中,系统变量“max\u connections”的值为100。但我正试图通过在jdbc连接字符串中传递键值对以编程方式重写这个值jdbc:mysql://localhost/test?maxconnections=3”。但它似乎没有反映出任何变化。下面我将maxconnection设置为3,但在下面的示例中,我仍然能够创建40个连接。注意,我并不是故意在每次迭代中关闭连接的。只是为了看看jdbc连接字符串中添加的键值是否生效。如果生效,则应该给出“too many connections”例外
参考代码如下:

public class JDBCOne {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        for(int i=1;i<=35;i++)
            {
            Connection conn = null;  
            Statement stmt = null;

            Class.forName("com.mysql.jdbc.Driver");

            System.out.println("Connecting to database...:"+i);
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test?maxConnections=3", "root", "root");
            stmt = conn.createStatement();
            Integer id = null;
            String name = null;
            Double amount = null;
            String sql = "SELECT * FROM emp where id=1";

            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next()) {
                id = rs.getInt("id");
                name = rs.getString("name");
                amount = rs.getDouble("amount");
            }
            System.out.println("id-" + id);
        }
        System.out.println("Goodbye!");
    }

}
93ze6v8z

93ze6v8z1#

我不能肯定,但有可能 com.mysql.jdbc.Driver 当conn和/或stmt超出范围时,正在关闭某些连接。
你可以试着把它们放在外面 for 回路:

Connection conn = null;  
        Statement stmt = null; 
        for(int i=1;i<=35;i++)
        {

您可以通过运行以下mysql命令来验证连接是否保持打开状态:

SHOW PROCESSLIST;
to94eoyn

to94eoyn2#

你可以用 set global max_connections = 200; 如果你有 SUPER 特权。
例如。:

try (PreparedStatement pstmt = conn.prepareStatement("SET GLOBAL max_connections = ?")) {
    pstmt.setInt(1, 200);
    pstmt.execute();
} catch (SQLException ex) {
    throw new RuntimeException(ex);
}
vc9ivgsu

vc9ivgsu3#

max_connections 是一个全局mysql服务器变量,用于控制服务器从连接到它的所有程序接受的连接数。
不过,它不是配置字符串参数。所以,如果你试图用一个连接字符串来改变它,你不能这样做™.
看看这个。https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html

相关问题