Error
Error Code:
1775
MySQL Error 1775: GTID Integer Component Exhaustion
Description
This error indicates that the integer component of the Global Transaction Identifier (GTID) has reached its maximum possible value for the current server UUID. It occurs when a MySQL server, configured with GTID replication, has processed an extremely high number of transactions, preventing the assignment of new unique GTIDs.
Error Message
Impossible to generate GTID: the integer component reached the maximum value. Restart the server with a new server_uuid.
Known Causes
3 known causesExcessive Transaction Volume
The MySQL server has processed an extraordinarily large number of transactions, exhausting the 32-bit sequence number within the GTID for the current server_uuid.
Prolonged Server Operation
A single MySQL server instance has been running for an extended period without its server_uuid being changed, allowing the GTID sequence to increment continuously to its limit.
Rapid GTID Consumption
Application workloads or specific transaction patterns that generate a very high rate of individual transactions can accelerate the consumption of the GTID integer component.
Solutions
3 solutions available1. Restart with a New Server UUID (Quick Fix) easy
The fastest way to resolve this is to restart the MySQL server with a newly generated server UUID.
1
Stop the MySQL server.
sudo systemctl stop mysql
2
Locate your MySQL configuration file. This is typically `my.cnf` or `my.ini` and can be found in locations like `/etc/mysql/my.cnf`, `/etc/my.cnf`, or within the MySQL data directory.
3
Edit the configuration file to remove or comment out the `server-uuid` line. If it doesn't exist, it will be generated automatically on restart.
# server-uuid = <existing_uuid>
4
Start the MySQL server. It will generate a new `server-uuid` automatically.
sudo systemctl start mysql
5
Verify that the server has started and check the new `server-uuid`. You can find this in the MySQL error log.
sudo tail -f /var/log/mysql/error.log
2. Manually Set a New Server UUID medium
Explicitly define a new server UUID in the configuration file.
1
Stop the MySQL server.
sudo systemctl stop mysql
2
Generate a new UUID. You can use the `uuidgen` command on Linux/macOS or PowerShell on Windows.
uuidgen
3
Locate your MySQL configuration file (e.g., `my.cnf`, `my.ini`).
4
Edit the configuration file and add or update the `server-uuid` directive with the newly generated UUID.
[mysqld]
server-uuid = <your_newly_generated_uuid>
5
Start the MySQL server.
sudo systemctl start mysql
6
Verify that the server has started and check the error log for confirmation of the new UUID.
sudo tail -f /var/log/mysql/error.log
3. Rebuild GTID State (More Involved) advanced
This approach involves clearing existing GTID information and allowing it to rebuild.
1
Stop the MySQL server.
sudo systemctl stop mysql
2
Backup your MySQL data directory. This is critical for recovery if anything goes wrong.
cp -a /var/lib/mysql /var/lib/mysql_backup_$(date +%Y%m%d_%H%M%S)
3
Locate your MySQL data directory. This is usually specified by the `datadir` variable in your `my.cnf` file.
4
Remove the GTID related files from the data directory. These are typically `gtid_executed.000001` and `gtid_executed.state` (filenames may vary slightly).
rm /var/lib/mysql/gtid_executed.*
5
Edit your MySQL configuration file (`my.cnf` or `my.ini`). Ensure `gtid_mode=ON` and `enforce_gtid_consistency=ON` are set.
[mysqld]
gtid_mode=ON
enforce_gtid_consistency=ON
6
Start the MySQL server. It will reinitialize the GTID state and generate a new `server-uuid`.
sudo systemctl start mysql
7
Connect to MySQL and verify the GTID status. The `gtid_executed` set should be empty or reflect the initial state.
mysql -u root -p
SHOW GLOBAL VARIABLES LIKE 'gtid_executed';
8
If you are using replication, you will need to reconfigure your replicas to point to the new primary or re-initialize them.