Skip to main content

Unable to open the log file (mysqld)

While starting the server you may find the below errors sometimes, it's because of unintentionally deleting the MySQL Binary Log files. When starting mysql if the server unable to find the mysql-bin-log files then below errors will arise.

170418 12:15:19 InnoDB: 5.5.30 started; log sequence number 32347593422
/usr/sbin/mysqld: File './mysql-bin.000023' not found (Errcode: 2)
170418 12:15:19 [ERROR] Failed to open log (file './mysql-bin.000023', errno 2)
170418 12:15:19 [ERROR] Could not open log file
170418 12:15:19 [ERROR] Can't init tc log
170418 12:15:19 [ERROR] Aborting

170418 12:15:19  InnoDB: Starting shutdown...
170418 12:15:20  InnoDB: Shutdown completed; log sequence number 32347593422
170418 12:15:20 [Note] /usr/sbin/mysqld: Shutdown complete
Do we have a solution to get rid of this and start MySQL again?

Well, we have two types of workarounds to start MySQL again.

1. Deleting the missed files in binlog .index file
2. Disabling the binlog logging on my.cnf file

1. Deleting the missed files in binlog .index file

$ vi mysql-bin.index

mysql-bin.000016
mysql-bin.000017
mysql-bin.000018
mysql-bin.000019
mysql-bin.000020
mysql-bin.000021
mysql-bin.000022
mysql-bin.000023
Delete the mysql-bin.000023 from the above file and restart the mysqld.

2. Disabling the binlog logging on my.cnf file 

In this step, open my.cnf and set the value of set_log_bin to 0 and purge all the existing binary logs

$ vi my.cnf

sql_log_bin = 0
Save the above file and restart the mysql service. Once after login to the server purge the bin logs.

$ mysql -u root -p -A -v
Enter Password:

mysql> PURGE BINARY LOGS;
This will delete the existing logs from the server.
After this step, Enable the Binary log again to write the changes to binlog files.

To do that login to MySQL again and do below.

$ mysql -u root -p -A -v
Enter Password:

mysql> SET sql_log_bin = 1;
Once after finishing this, edit the my.cnf file and set the sql_log_bin from 0 to 1and restart the service.

Note: The second procedure is not the recommended way to apply in Production.

Comments

Popular posts from this blog

Monitoring MySQL with Percona Monitoring and Management

In this blog post we will see how to monitor MySQL databases using the open source monitoring tool provided by Percona, referred as Percona Monitoring and Management (PMM). About PMM: Percona Monitoring and Management (PMM) is an open-source platform for managing and monitoring MySQL and MongoDB performance. It is developed by Percona in collaboration with experts in the field of managed database services, support and consulting. PMM is a free and open-source solution that you can run in your own environment for maximum security and reliability. It provides thorough time-based analysis for MySQL and MongoDB servers to ensure that your data works as efficiently as possible. Basic Requirements: 1. Need at least one Linux server to install PMM Client and PMM Server. 2. Need Operating System - root user credentials 3. Default port's(80) have to be open if using to or more servers. 4. A MySQL user is required to capture the Queries in the Database. 5. A Docker se...

Installing,Starting,Stopping PostgreSQL Server on Linux OS

In this post, we will see how to Install and Run PostgreSQL on Linux machines. There are three ways to installation procedures to download the software. 1. Binary Installation 2. Yum Installation 3. RPM Installation In this post, will see how to install PostgreSQL using Binary installation. 1. Download the binaries from the official website. $ wget https://get.enterprisedb.com/postgresql/postgresql-9.6.2-4-linux-x64-binaries.tar.gz 2. Untar the downloaded binaries. $ tar -xvzf postgresql-9.6.2-4-linux-x64-binaries.tar.gz 3. Create appropriate data directories and permissions with root user to run PostgreSQL Server. # mkdir -p /var/lib/pgsql/data # chown -R psql /var/lib/pgsql/data # su psql 4. Now change the directory path to the downloaded software path $ cd /home/psql/softwares/pgsql 5. Initialize the data directories required for PostgreSQL to run, there are two ways to initialize the directories. $ initdb -D /usr/local/pgsql/data Alternatively, we ...