ANS Documentation

Improve This Doc
  • Cloud
  • Domains and DNS management
  • Backup and High Availability
  • eCommerce Stacks
  • Security
  • Email
  • Monitoring and usage management
  • Networking
  • Operating systems
    • Linux
      • Basics
      • Apache
      • Control Panels
      • FTP
      • Magento
      • Miscellaneous
      • MySQL
      • NGINX
      • PHP
      • PHP-FPM
      • Setting up Websites
      • NFS
      • VPN
      • Percona
      • SSH
      • SSL
      • Git
      • Redis
      • Elasticsearch
      • MongoDB
      • Ncdu
    • VMware ESXi
    • Windows
  • Webcelerator
  • MyUKFast
  • Home >
  • Operating systems >
  • Linux >
  • MySQL >
  • Restoring databases from a file based MySQL Backup

Restoring databases from a file based MySQL Backup¶

This article will provide the steps need to restore a database using a physical file path when a .sql file is not available.

For this guide, the file path is /home/restore/var/lib/mysql.

Using the given path, you will create a second instance of MySQL. This second instance of MySQL will be used to dump out copy of the database and create a .sql file which you can then import.

Create A Second Instance¶

First edit the /etc/my.cnf file to include a new block called [mysql1] for the second instance. Here is an example of what a basic my.cnf looks like.

  [mysqld]
  datadir=/var/lib/mysql
  socket=/var/lib/mysql/mysql.sock
  user=mysql
  # Disabling symbolic-links is recommended to prevent assorted security risks
  symbolic-links=0

  [mysqld_safe]
  log-error=/var/log/mysqld.log
  pid-file=/var/run/mysqld/mysqld.pid

Using a text editor, add the following [mysql1] block to the end of the /etc/my.cnf. Make sure to update the datadir with the file path of the database:

  $ vi /etc/my.cnf
  [mysqld1]
  datadir=/home/restore/var/lib/mysql
  socket=/var/lib/mysql/mysqld1.sock
  pid-file=/var/lib/mysql/mysqld1.pid
  port=23306
  user=mysql

Start The Second Instance¶

Type the command below in your SSH console to start this instance

mysqld_multi start 1

Once started, type the command below to see if the instance is running.

mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running

If it is not running, use the log file /var/lib/mysql/mysqld_multi.log to debug.

Dump Out The Database¶

Warning

Always ensure you have enough disk space available before creating a database dump

Check that the database you require is in the second instance of MySQL and contains the tables you are expecting:

mysql -S /var/lib/mysql/mysqld1.sock
  MariaDB [(none)]> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | performance_schema |
  | example_db         |
  +--------------------+
  4 rows in set (0.00 sec)
  MariaDB [(none)]> use example_db;
  Database changed

  MariaDB [example_db]> show tables;
  +---------------------+
  | Tables_in_example_db|
  +---------------------+
  | employees           |
  | products            |
  | orders              |
  +---------------------+
  1 row in set (0.00 sec)

Provided the data is as expected, back into SSH and dump out the individual database:

mysqldump -S /var/lib/mysql/mysqld1.sock -u root -p example_db > example_db.sql

Check the exported .sql file contains expected data:

less example_db.sql

Cleanup¶

Now you have successfully imported the database, cleanup the second instance using the command below.

mysqld_multi stop 1

Import a database dump¶

Now you have a .sql file you can follow import your database guide for more information.

Next Article > Import A Database

  • Useful Links
  • SMB
  • Enterprise
  • Channel
  • Public Sector
  • ANS Data Centres
  • About ANS
  • Careers
  • Blog
  • Get in touch
  •  
  • Sales 0800 458 4545
  • Support 0800 230 0032
  • Get in touch

© ANS Group Limited | Terms and Conditions | Corporate Guidance | Sitemap
ANS Group Limited, registered in England and Wales, company registration number 03176761, registered office 1 Archway, Birley Fields, Manchester M15 5QJ