You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

r.mysql.centos.sh 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. # Set variables
  3. MYSQL_BACKUP_DIR="/tmp/mysql_backup"
  4. MYSQL_BACKUP_FILE="all_databases_backup.sql"
  5. # Stop MySQL service
  6. echo "Stopping MySQL service..."
  7. sudo systemctl stop mysqld
  8. # Backup all MySQL databases
  9. echo "Backing up all databases..."
  10. mkdir -p $MYSQL_BACKUP_DIR
  11. sudo mysqldump -u root -p --all-databases > $MYSQL_BACKUP_DIR/$MYSQL_BACKUP_FILE
  12. # Remove MySQL and related packages
  13. echo "Removing MySQL and related packages..."
  14. sudo yum remove -y mysql-server mysql mysql-libs
  15. # Remove MySQL data and configuration files (This deletes your MySQL data, use with caution)
  16. echo "Removing MySQL data and configuration files..."
  17. sudo rm -rf /var/lib/mysql
  18. sudo rm -f /etc/my.cnf
  19. sudo rm -rf /etc/mysql
  20. sudo rm -f /var/log/mysqld.log
  21. # Install MySQL repository
  22. echo "Installing MySQL repository..."
  23. sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -O /tmp/mysql80-community-release-el7-3.noarch.rpm
  24. sudo rpm -ivh /tmp/mysql80-community-release-el7-3.noarch.rpm
  25. # Install MySQL server
  26. echo "Installing MySQL server..."
  27. sudo yum install -y mysql-server
  28. # Start MySQL service
  29. echo "Starting MySQL service..."
  30. sudo systemctl start mysqld
  31. # Enable MySQL to start on boot
  32. echo "Enabling MySQL to start on boot..."
  33. sudo systemctl enable mysqld
  34. # Get the temporary MySQL root password
  35. MYSQL_TEMP_PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
  36. # Secure MySQL installation
  37. echo "Securing MySQL installation..."
  38. sudo mysql_secure_installation <<EOF
  39. $MYSQL_TEMP_PASSWORD
  40. y
  41. new_password_here
  42. new_password_here
  43. y
  44. y
  45. y
  46. y
  47. EOF
  48. # Verify MySQL service status
  49. echo "Verifying MySQL service status..."
  50. sudo systemctl status mysqld
  51. # Restore backup (optional, you may skip this if you want to start fresh)
  52. echo "Restoring MySQL data..."
  53. mysql -u root -p < $MYSQL_BACKUP_DIR/$MYSQL_BACKUP_FILE
  54. echo "MySQL reinstallation complete!"