MySQL is an open-source relational database management system. And like any software, it can encounter issues that may trouble its operation. One of the recent issues is the “Segmentation Fault” error in MySQL 8.0.38, which prevents the database from starting. In this blog, we will discuss the possible causes of this issue, provide troubleshooting steps, and offer solutions to resolve it.
Table of Contents
Symptoms of MySQL Upstream Issue
MySQL has released version 8.0.38, which fails to start:
2024-06-30T20:01:02.824793Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-06-30T20:01:04.845922Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-06-30T20:01:06Z UTC – mysqld got signal 11 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong…
MySQL Upstream Issue Description
MySQL 8.0.38 was released upstream. Following automatic updates, multiple reports have emerged indicating that MySQL is not starting.
MySQL Upstream Issue Resolution
1. RHEL-based servers
Downgrade to the previous subversion of MySQL 8:
yum downgrade mysql-community-*
You can lock the version to prevent the update from recurring, but we recommend removing the lock once the upstream issue is resolved.
How to version lock RPM packages – click here
2. Ubuntu servers
There is no native method to downgrade MySQL packages using the “apt” command, so you will need to manually downgrade them using packages from the MySQL archive.
1. Log in as the root user, create a new “mysqldown” directory in the root folder, and change into this directory:
mkdir -v /root/mysqldown && cd /root/mysqldown
2. Download the archive for MySQL version 8.0.37.
For Ubuntu 22.04:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.37-1ubuntu22.04_amd64.deb-bundle.tar
This archive contains all the Ubuntu packages for MySQL 8.0.37.
3. Extract the archive.
For Ubuntu 20.04:
tar xvf mysql-server_8.0.37-1ubuntu20.04_amd64.deb-bundle.tar
For Ubuntu 22.04:
tar xvf mysql-server_8.0.37-1ubuntu22.04_amd64.deb-bundle.tar
4. Remove unnecessary packages from the current directory. The server does not require these, nor does it have the necessary dependencies.
For Ubuntu 20.04:
rm -rvf ./mysql-community-test-debug_8.0.37-1ubuntu20.04_amd64.deb ./mysql-community-test_8.0.37-1ubuntu20.04_amd64.deb ./mysql-testsuite_8.0.37-1ubuntu20.04_amd64.deb
For Ubuntu 22.04:
rm -rvf ./mysql-community-test-debug_8.0.37-1ubuntu22.04_amd64.deb ./mysql-community-test_8.0.37-1ubuntu22.04_amd64.deb ./mysql-testsuite_8.0.37-1ubuntu22.04_amd64.deb
5. Install all the packages in the current directory:
dpkg -i *mysql*.deb
This will replace the 8.0.38 packages with the 8.0.37 versions.
6. Confirm that the MySQL service is running:
/scripts/restartsrv_mysql --status
7. To prevent this issue from recurring in the next update, version-lock the packages with the following command:
apt-mark hold mysql-client mysql-common mysql-community-client-core mysql-community-client-plugins mysql-community-client mysql-community-server-core mysql-community-server-debug mysql-community-server mysql-server mysql-shell
Conclusion
Resolving a segmentation fault in MySQL 8.0.38 requires a systematic approach to troubleshooting. By following these steps mentioned above, you can resolve this issue. If all else fails, the MySQL community is a great resource for additional support. Remember, maintaining regular backups can prevent many issues and make troubleshooting easier when problems do arise.