Reset, Backup and Restore the Open-AudIT database

Open-AudIT ships with a .sql file used to build the database schema. It is a simple matter to use this and reset the database.

NOTE - If you have changed the credentials used by Open-AudIT to access MySQL you will need to adjust the below commands.

Recreate Database

Linux

mysql -u openaudit -popenauditpassword openaudit < /usr/local/open-audit/other/openaudit_mysql.sql

Windows

c:\xampp\mysql\bin\mysql.exe -u openaudit -popenauditpassword openaudit < c:\xampp\open-audit\other\openaudit_mysql.sql


Completely Delete Database and Recreate

If you would like to completely drop the database, run the below commands.

Linux

mysql -u root -popenauditrootuserpassword -e "drop database openaudit; create database openaudit;"
mysql -u openaudit -popenauditpassword openaudit < /usr/local/open-audit/other/openaudit_mysql.sql

Windows

c:\xampp\mysql\bin\mysql.exe -u root -popenauditrootuserpassword -e "drop database openaudit; create database openaudit;"
c:\xampp\mysql\bin\mysql.exe -u openaudit -popenauditpassword openaudit < c:\xampp\open-audit\other\openaudit_mysql.sql


Backup the Database

Linux

mysqldump -u openaudit -popenauditpassword --routines --extended-insert=FALSE openaudit > /tmp/openaudit_mysql.sql

Windows

c:\xampp\mysql\bin\mysqldump.exe -u openaudit -popenauditpassword --routines openaudit > c:\temp\openaudit_mysql.sql


Restore the Database

Linux

mysql -u openaudit -popenauditpassword openaudit < /tmp/openaudit_mysql.sql

Windows

c:\xampp\mysql\bin\mysql.exe -u openaudit -popenauditpassword openaudit < c:\temp\openaudit_mysql.sql

NOTE - If you restore the database onto a fresh install or an upgraded install, you will need to update your tasks (if you have any). Run the below.

Windows -

c:\xampp\mysql\bin\mysql.exe -u openaudit -popenauditpassword openaudit -e "UPDATE tasks SET uuid = (SELECT value FROM configuration WHERE name = 'uuid');"

Linux -

mysql -u openaudit -popenauditpassword openaudit -e "UPDATE tasks SET uuid = (SELECT value FROM configuration WHERE name = 'uuid');"

Moving the Database Files on Windows

Sometimes users don't want the actual MySQL data on their C Drive. An example of moving the files to G Drive is below. Note - the MySQL server itself is left on C Drive, only the database data files are moved.

First, open a command prompt with Administrator rights, then run the below commands.

net stop mysql
xcopy C:\xampp\mysql\data G:\data /O /X /E /H /K
move C:\xampp\mysql\data C:\xampp\mysql\data.bak
mklink /J C:\xampp\mysql\data G:\data
net start mysql

NOTE - We have not deleted the files in the original c:\xampp\mysql\data directory. This is left to the user to do when they are happy the files (now on G Drive) are working as intended.

To reverse the procedure (assuming you still have your original files in c:\xampp\mysql\data.bak, again open a command prompt with Administrator rights, then run the below commands.

net stop mysql
rmdir c:\xampp\mysql\data
move c:\xampp\mysql\data.bak c:\xampp\mysql\data
net start mysql

NOTE - the actual data in g:\data has not been deleted and is left for the user to do.

Restoring the database on another machine

First back-up the database as above.

On the new machine, install MySQL.

For all steps, you will need to know the MySQL root users password.

  • If MySQL root user has a password, all commands below should use the -p switch so you can input the password.
  • If MySQL root user does not have a password, use as below.

Create a new instance of a database

mysql -u root -e "CREATE DATABASE openaudit;"

Create the Open-AudIT user.

mysql -u root -e "CREATE USER openaudit@localhost IDENTIFIED BY 'openauditpassword';"

And allow the user access to the database.

mysql -u root -e "GRANT ALL PRIVILEGES ON openaudit.* TO openaudit@localhost IDENTIFIED BY 'openauditpassword'; FLUSH PRIVILEGES;"

Copy the database backup file to the new machine (in this case to /tmp/openaudit_mysql.sql).

Restore the database, as above.