Restoring a MySQL table back to the database
When we need to restore a single MySQL table from big data MySQL backup. Most modern text editors should be able to handle a text file that size, if your system is up to it....
When we need to restore a single MySQL table from big data MySQL backup. Most modern text editors should be able to handle a text file that size, if your system is up to it....
Simple shell script to backup MySQL databases.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#!/bin/bash # Simple script to backup MySQL databases # Parent backup directory backup_parent_dir="/var/backups/mysql" # MySQL settings mysql_user="root" mysql_password="" # Read MySQL password from stdin if empty if [ -z "${mysql_password}" ]; then echo -n "Enter MySQL ${mysql_user} password: " read -s mysql_password echo fi # Check MySQL password echo exit | mysql --user=${mysql_user} --password=${mysql_password} -B 2>/dev/null if [ "$?" -gt 0 ]; then echo "MySQL ${mysql_user} password incorrect" exit 1 else echo "MySQL ${mysql_user} password correct." fi # Create backup directory and set permissions backup_date=`date +%Y_%m_%d_%H_%M` backup_dir="${backup_parent_dir}/${backup_date}" echo "Backup directory: ${backup_dir}" mkdir -p "${backup_dir}" chmod 700 "${backup_dir}" # Get MySQL databases mysql_databases=`echo 'show databases' | mysql --user=${mysql_user} --password=${mysql_password} -B | sed /^Database$/d` # Backup and compress each database for database in $mysql_databases do if [ "${database}" == "information_schema" ] || [ "${database}" == "performance_schema" ]; then additional_mysqldump_params="--skip-lock-tables" else additional_mysqldump_params="" fi echo "Creating backup of "${database}" database" mysqldump ${additional_mysqldump_params} --user=${mysql_user} --password=${mysql_password} ${database} | gzip > "${backup_dir}/${database}.gz" chmod 600 "${backup_dir}/${database}.gz" done |
Example output (with mysql password stored inside script):
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo mysql_backup.sh MySQL root password correct. Backup directory: /var/backups/mysql/2012_11_20_20_56 Creating backup of "information_schema" database Creating backup of "notes" database Creating backup of "dokuwiki" database Creating backup of "kalkun" database Creating backup of "mysql" database Creating backup of "performance_schema" database Creating backup of "semantic" database Creating backup of "wordpress" database |