# Metricbeat 8 sql module leaks connections when using prepared statements

**URL:** <https://discuss.elastic.co/t/metricbeat-8-sql-module-leaks-connections-when-using-prepared-statements/377684>\
**Category:** Beats\
**Tags:** metricbeat\
**Created:** [April 30, 2025, 5:33pm UTC](https://discuss.elastic.co/t/metricbeat-8-sql-module-leaks-connections-when-using-prepared-statements/377684 "2025-04-30T17:33:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jay-dba](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jay-dba/32/124897_2.png) [@jay-dba](https://discuss.elastic.co/u/jay-dba)\
**Post date:** [April 30, 2025, 5:33pm UTC](https://discuss.elastic.co/t/metricbeat-8-sql-module-leaks-connections-when-using-prepared-statements/377684/1 "2025-04-30T17:33:40Z")

</div>

We recently went from Metricbeat 7.14 to 8.14  
We have found idle metricbeat connections piling up in mysql.

Problem: We use the sql module to run queries on mysql. The queries use prepared statements. Since going to metricbeat 8, the connections leak, maybe a difference in the GO driver. The queries still work but the connections stay until we hit the mysql connection limit.

Duplicate: spin up a mysql 8.0 instance and use this sql.yml to query it.  
Check connections to mysql

sample sql.yml:

```auto
# Module: sql
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/8.14/metricbeat-module-sql.html

- module: sql
  metricsets:
    - query
  period: 10s
  hosts: ["metricbeat:password(127.0.0.1:3306)/?multiStatements=true"]
  driver: "mysql"
  sql_query: |
    SET @schema_name = 'mysql';
    SET @sql = CONCAT(
    'SELECT TABLE_NAME, TABLE_TYPE ',
    'FROM information_schema.tables ',
    'WHERE TABLE_SCHEMA = \'', @schema_name, '\''
    );
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
  sql_response_format: table

```

 ![Screenshot 2025-04-30 at 1.30.10 PM](https://us1.discourse-cdn.com/elastic/original/3X/2/0/205e7cb4eaf993ede0ea8a3058d6857ad2258b3a.png)

---

<div class="post-metadata">

**Author:** ![jay-dba](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jay-dba/32/124897_2.png) [@jay-dba](https://discuss.elastic.co/u/jay-dba)\
**Post date:** [May 9, 2025, 8:24pm UTC](https://discuss.elastic.co/t/metricbeat-8-sql-module-leaks-connections-when-using-prepared-statements/377684/2 "2025-05-09T20:24:04Z")

</div>

I tried converting my query into a stored procedure hoping we could use the queries that way (still using prepared statements for dynamic sql, just in a proc instead)  
and then called the proc with metricbeat sql.  
Same results unfortunately.

---

<div class="post-metadata">

**Author:** ![jay-dba](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jay-dba/32/124897_2.png) [@jay-dba](https://discuss.elastic.co/u/jay-dba)\
**Post date:** [January 14, 2026, 10:16pm UTC](https://discuss.elastic.co/t/metricbeat-8-sql-module-leaks-connections-when-using-prepared-statements/377684/3 "2026-01-14T22:16:22Z")

</div>

I have confirmed this is still a problem in metricbeat 9.2.4
