MySQL times out when a user's password is changed

  • Nextcloud Server version:
    • 30.0.1
  • Operating system and version:
    • Ubuntu 24.04.3 LTS
  • Web server and version (e.g, Apache 2.4.25):
    • Apache 2.4.58
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • None
  • PHP version (e.g, 8.3):
    • 8.3
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • Unknown
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Bare Metal
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

When I try to change a user’s password through the admin profile→accounts→(pencil next to an account)→(typing new password)→(arrow button), the server hangs (the client is unaffected, just gets no response of any kind from the server). It recovers after a few minutes with the password unchanged.

Log entries

Nextcloud

{"reqId":"JjVgEJMX9UmN2EaW8thb","level":2,"time":"2025-10-30T21:11:29+00:00","remoteAddr":"xx.xxx.xxx.xxx","user":"admin","app":"no app in context","method":"PUT","url":"/ocs/v2.php/cloud/users/alice","message":"Exception during connectivity check, closing and reconnecting","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0","version":"32.0.1.2","exception":{"Exception":"Doctrine\\DBAL\\Driver\\PDO\\Exception","Message":"SQLSTATE[HY000]: General error: 2006 MySQL server has gone away","Code":2006,"Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Connection.php","line":76,"function":"new","class":"Doctrine\\DBAL\\Driver\\PDO\\Exception","type":"::"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":906,"function":"query","class":"Doctrine\\DBAL\\Driver\\PDO\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":221,"function":"reconnectIfNeeded","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1692,"function":"connect","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":871,"function":"getWrappedConnection","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php","line":321,"function":"quote","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php","line":406,"function":"literal","class":"Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Lock/DBLockingProvider.php","line":231,"function":"literal","class":"OC\\DB\\QueryBuilder\\ExpressionBuilder\\ExpressionBuilder","type":"->"},{"function":"releaseAll","class":"OC\\Lock\\DBLockingProvider","type":"->"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Exception.php","Line":24,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[HY000]: General error: 2006 MySQL server has gone away","Code":"HY000","Trace":[{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Connection.php","line":71,"function":"query","class":"PDO","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":906,"function":"query","class":"Doctrine\\DBAL\\Driver\\PDO\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/Connection.php","line":221,"function":"reconnectIfNeeded","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":1692,"function":"connect","class":"OC\\DB\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php","line":871,"function":"getWrappedConnection","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Query/Expression/ExpressionBuilder.php","line":321,"function":"quote","class":"Doctrine\\DBAL\\Connection","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php","line":406,"function":"literal","class":"Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/Lock/DBLockingProvider.php","line":231,"function":"literal","class":"OC\\DB\\QueryBuilder\\ExpressionBuilder\\ExpressionBuilder","type":"->"},{"function":"releaseAll","class":"OC\\Lock\\DBLockingProvider","type":"->"}],"File":"/var/www/nextcloud/3rdparty/doctrine/dbal/src/Driver/PDO/Connection.php","Line":71},"message":"Exception during connectivity check, closing and reconnecting","exception":[],"CustomMessage":"Exception during connectivity check, closing and reconnecting"},"id":"6903d7038fc55"}  

Followed by:

{"reqId":"JjVgEJMX9UmN2EaW8thb","level":3,"time":"2025-10-30T21:11:29+00:00","remoteAddr":"xx.xxx.xxx.xxx","user":"admin","app":"PHP","method":"PUT","url":"/ocs/v2.php/cloud/users/alice","message":"Doctrine\\DBAL\\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory at /var/www/nextcloud/lib/private/DB/Connection.php#238","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0","version":"32.0.1.2","data":{"app":"PHP"},"id":"6903d7038fc39"}

Followed by:

{"reqId":"JjVgEJMX9UmN2EaW8thb","level":3,"time":"2025-10-30T21:11:29+00:00","remoteAddr":"xx.xxx.xxx.xxx","user":"admin","app":"core","method":"PUT","url":"/ocs/v2.php/cloud/users/alice","message":"Request used more than 300 MB of RAM: 382.1 MB","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0","version":"32.0.1.2","data":{"app":"core"},"id":"6903d7038fc30"}

Configuration

Nextcloud

{
    "system": {
        "overwrite.cli.url": "https:\/\/nextcloud.anelosima.com\/",
        "htaccess.RewiteBase": "\/",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.anelosima.com"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.1.2",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "loglevel": 2,
        "updater.secret": "***REMOVED SENSITIVE VALUE***",
        "theme": ""
    }
}

Apps

  - activity: 5.0.0-dev.0
  - app_api: 32.0.0
  - bruteforcesettings: 5.0.0-dev.0
  - calendar: 6.0.2
  - circles: 32.0.0
  - cloud_federation_api: 1.16.0
  - comments: 1.22.0
  - contactsinteraction: 1.13.1
  - dashboard: 7.12.0
  - dav: 1.34.2
  - federatedfilesharing: 1.22.0
  - federation: 1.22.0
  - files: 2.4.0
  - files_downloadlimit: 5.0.0-dev.0
  - files_pdfviewer: 5.0.0-dev.0
  - files_reminders: 1.5.0
  - files_sharing: 1.24.0
  - files_trashbin: 1.22.0
  - files_versions: 1.25.0
  - firstrunwizard: 5.0.0-dev.0
  - logreader: 5.0.0-dev.0
  - lookup_server_connector: 1.20.0
  - nextcloud_announcements: 4.0.0-dev.0
  - notifications: 5.0.0-dev.0
  - oauth2: 1.20.0
  - password_policy: 4.0.0-dev.0
  - photos: 5.0.0-dev.1
  - privacy: 4.0.0-dev.0
  - profile: 1.1.0
  - provisioning_api: 1.22.0
  - recommendations: 5.0.0-dev.0
  - related_resources: 3.0.0-dev.0
  - serverinfo: 4.0.0-dev.0
  - settings: 1.15.1
  - sharebymail: 1.22.0
  - support: 4.0.0-dev.0
  - survey_client: 4.0.0-dev.0
  - systemtags: 1.22.0
  - tasks: 0.17.0
  - text: 6.0.1
  - theming: 2.7.0
  - twofactor_backupcodes: 1.21.0
  - updatenotification: 1.22.0
  - user_status: 1.12.0
  - viewer: 5.0.0-dev.0
  - weather_status: 1.12.0
  - webhook_listeners: 1.3.0
  - workflowengine: 2.14.0
Disabled:
  - admin_audit: 1.22.0
  - encryption: 2.20.0
  - files_external: 1.24.0
  - suspicious_login: 10.0.0-dev.0
  - twofactor_nextcloud_notification: 6.0.0-dev.0
  - twofactor_totp: 14.0.0
  - user_ldap: 1.23.0

When I try to look up the error, I get a lot of stuff about configuring MySQL which 1. I haven’t done at all (I just followed the server installation guide at https://docs.nextcloud.com/server/stable/admin_manual/index.html, which didn’t mention doing any MySQL config) 2. seems to be implied to be necessary for running Nextcloud at all, which implies a certain mismatch. Background: I don’t know anything at all about server administration beyond the absolute basics. Around six months ago I installed Nextcloud mostly for its CalDAV and CardDAV functions to use entirely personally; I set up a single user account and calendar and have been happily syncing between my devices since then without touching the installation at all except infrequently to update. Presently, I have forgotten the password I set up that user account with, and wanted to sync my calendar with a new device. I went to change it and got the error listed.

Hi,

The “MySQL server has gone away” message means your database connection drops while Nextcloud is trying to update the user password. This usually happens when MySQL’s default timeout or packet size limits are too low for Nextcloud.

You can fix it by adjusting MySQL’s configuration:

  1. Open your MySQL config file — usually located at:
    /etc/mysql/mysql.conf.d/mysqld.cnf

  2. Under the [mysqld] section, add or edit these lines:

    wait_timeout = 28800
    interactive_timeout = 28800
    max_allowed_packet = 128M
    
    

    Save the file, then restart MySQL:
    sudo systemctl restart mysql

  3. Restart Apache too:
    sudo systemctl restart apache2

These settings allow MySQL to stay connected longer and handle larger database operations (like password updates or large queries).

If you still see the error after that, check that MySQL’s socket path matches the one Nextcloud expects. In /var/www/nextcloud/config/config.php, ensure the dbhost entry looks like:

'dbhost' => 'localhost:/var/run/mysqld/mysqld.sock',

instead of just localhost.

After making these changes, retry changing the password, it should work normally.