Aim: Populate a new Ubuntu 22 Mysql 5.7.43 server with a Percona XtraBackup 2.4 of a CentOS7 MySQL 5.7.43 server with no downtime.
I run through the steps to make a full backup, transfer it, prepare it, and restore it, but the mysql service won’t restart and logs no errors.
Prior to the backup the service starts fine.
I’ve confirmed the md5 of the backup.
Here is the process I used:
Install percona XtraBackup on Linode
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm sudo yum install percona-xtrabackup-24
Create a hot backup (sudo due to core mysql file only being root accessible)
sudo xtrabackup --backup --no-timestamp --user=root --password='password' --target-dir=/home/user/backup
Own it to the current user
sudo chown -R user:group ~/backup sudo chmod -R u+rw ~/backup
Compress the backup
tar -cpzvf backup.tar.gz -C ~/backup .
Upload compressed backup to s3
aws s3 cp backup.tar.gz s3://s3Address/Backup.tar.gz
Login to private-ec2
Setup MySQL
Start service
sudo service mysql start
Initialise the EC2 db
sudo mysql_secure_installation
Download the backup from S3
aws s3 cp s3://eu-w2-jmtest-s3-01/backup.tar.gz ~/backup/backup.tar.gz
Uncompress backup
tar -xpzvf ~/backup/backup.tar.gz -C ~/backup
Prepare backup
xtrabackup --prepare --target-dir=/home/user/backup
Install Percona XtraBackup on private-ec2
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb sudo apt-get update sudo apt-get install percona-release sudo apt-get update sudo apt-get install percona-xtrabackup-24
Stop the MySQL service
sudo service mysql stop
Empty /var/lib/mysql
sudo rm -rf /var/lib/mysql/
sudo mkdir /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql`
Restore the backup (again with root filepaths)
sudo xtrabackup --copy-back --target-dir=/home/user/backup
Adjust permissions
sudo chown -R mysql:mysql /var/lib/mysql sudo chmod -R 700 /var/lib/mysql sudo chmod -R 600 /var/lib/mysql
Restart the mysql service [HERE IS WHER IT BLOWS UP]
sudo service mysql start
Login to mysql to check the restore worked:
mysql -u root -p