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:

  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.