Attention MySQL users that are running MySQL 8.0.38, MySQL 8.4.1, or MySQL 9.0.0:
The folks at Percona are sounding the alarms in a blog published last week. They identified a potential bug, of which mysqld will crash at restart if the database has more than 10,000 tables.
You can test it yourself using a script Percona provided in a reported issue, PS-9306.
If you are running a lower version of MySQL 8.0, be sure that your operating system is not automatically updating. If you’re on a linux system, APT daily script and Snap are some ways automatic updates might be enabled.
Here are steps to take when considering a MySQL upgrade:
- Review Release Notes and Documentation
- MySQL 8.0 Release Notes: Go through the official MySQL 8.0 release notes to understand new features, deprecated functionalities, and potential backward incompatibilities.
- MySQL 8.0 Documentation: Familiarize yourself with the MySQL 8.0 documentation, including new configuration options and performance improvements.
- Backup Your Data
- Full Backup: Ensure you take a complete backup of your current database. Use tools like mysqldump, Percona XtraBackup, or other backup solutions you are comfortable with.
- Verify Backups: Test your backups to make sure they can be restored successfully.
- Test Environment
- Set Up a Test Environment: Create a replica of your production environment to test the upgrade process. This helps in identifying potential issues without affecting the live system.
- Run Tests: Perform extensive testing on your applications and queries in this environment to ensure they work correctly with MySQL 8.0.
- Check for Deprecated Features
- Identify Deprecated Features: Review the list of features deprecated in MySQL 8.0 and make necessary code changes in your applications.
- Update SQL Mode
- STRICT_TRANS_TABLES: MySQL 8.0 enforces STRICT_TRANS_TABLES SQL mode by default. Ensure your applications handle this correctly.
- NO_AUTO_CREATE_USER: This SQL mode has been removed in MySQL 8.0.
- Review Character Set and Collation Changes
- Default Character Set: MySQL 8.0 uses utf8mb4 as the default character set. Check if your applications are compatible with this change.
- Collation Changes: Review and adjust collations if necessary.
Additional Tips
- Stay Informed: Keep up with MySQL community discussions and updates related to MySQL 8.0.
- Seek Help: If you encounter issues, consult the MySQL documentation, forums, or consider professional support from MySQL experts.
For more information, please contact us.