Hi all
I'm totally new to these applications, so the solution to my problem will be easy hopefully!
Context
I have a backup of Stash taken with the Stash Backup Client.
I'm trying to do a test restore from that backup on another machine.
Problem
When I run the restore command it fails with the following error:
$ java -jar stash-restore-client.jar /root/restore/stash/backups/stash-20141210-205945-019.tar
...
The configured JDBC driver, mysql-connector-java-5.1.34-bin.jar, is not available on the classpath. Ensure the jar for the driver is present in the "jdbc" directory beneath /root/stash-backup-client-1.6.0/. and try again.
Preparation Steps for Restore
I have downloaded the Stash Backup Client and stop the atlassian applications on the machine
$ wget https://maven.atlassian.com/content/repositories/atlassian-public/com/atlassian/stash/backup/stash-backup-distribution/1.6.0/stash-backup-distribution-1.6.0.zip
$ unzip stash-backup-distribution-1.6.0.zip
$ rm stash-backup-distribution-1.6.0.zip
$ service jira stop
$ service atlstash stop
copied the mysql driver into "jdbc" directory beneath /root/stash-backup-client-1.6.0/
$ cp /opt/atlassian/stash/3.5.0/lib/mysql-connector-java-5.1.34-bin.jar stash-backup-client-1.6.0/jdbc/
$ tree stash-backup-client-1.6.0
stash-backup-client-1.6.0/
├── backup-config.properties
├── jdbc
├── hsqldb-2.2.4.jar
├── mysql-connector-java-5.1.34-bin.jar
├── ojdbc6-11.2.0.2.0.jar
├── postgresql-9.3-1102-jdbc41.jar
└── sqljdbc-4.0.2206.jaredited backup-config.properties
$ cat backup-config.properties
...
stash.home=/var/atlassian/application-data/stash
...
jdbc.override=true
jdbc.driver=mysql-connector-java-5.1.34-bin.jar
jdbc.url=jdbc:mysql://localhost:3306/scstdb?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=storage_engine%3DInnoDB
jdbc.user=root
jdbc.password=test123
installed java
$ apt install default-jre
$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
created a new empty database and a mysql user with access to this database
$ mysql -u root -p
DROP DATABASE scstdb;
CREATE DATABASE scstdb CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON scstdb.* TO 'scstu'@'localhost' IDENTIFIED BY 'test123';
FLUSH PRIVILEGES;
QUIT
emptied the home directory
$ cd /var/atlassian/application-data/stash
$ rm -r *
$ rm -r .*
activated debug logging
$ cd ~/stash-backup-client-1.6.0
$ echo "<included><logger name="com.atlassian.stash" level="DEBUG"/></included>" > logback.xml
then attempted to restore the backup
$ cd ~/stash-backup-client-1.6.0
$ java -jar stash-restore-client.jar /root/restore/stash/backups/stash-20141210-205945-019.tar
the log/ contains and the output to terminal can be seen here
cat log/atlassian-sbc-2014-12-11-1514.log
2014-12-11 15:14:04,877 INFO [main] c.a.s.i.b.client.spring.SpringMain Initializing
2014-12-11 15:14:06,761 INFO [main] c.a.s.i.b.c.DefaultRestoreClient Unpacking stash-20141210-205945-019.tar to /var/atlassian/application-data/stash
2014-12-11 15:14:08,330 ERROR [main] c.a.s.i.backup.client.RestoreMain stash-20141210-205945-019.tar could not be restored. Reason: The configured JDBC driver, mysql-connector-java-5.1.34-bin.jar, is not available on the classpath. Ensure the jar for the driver is present in the "jdbc" directory beneath /root/stash-backup-client-1.6.0/. and try again.
com.atlassian.stash.internal.backup.client.RestoreException: The configured JDBC driver, mysql-connector-java-5.1.34-bin.jar, is not available on the classpath. Ensure the jar for the driver is present in the "jdbc" directory beneath /root/stash-backup-client-1.6.0/. and try again.
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.createDataSource(DefaultRestoreClient.groovy:165) ~[stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.withDataSource(DefaultRestoreClient.groovy:264) ~[stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.restoreDatabase(DefaultRestoreClient.groovy:218) ~[stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.restoreSystem(DefaultRestoreClient.groovy:252) ~[stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.restore(DefaultRestoreClient.groovy:83) ~[stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.spring.SpringMain.run(SpringMain.groovy:28) [stash-backup-core-1.6.0.jar:na]
at com.atlassian.stash.internal.backup.client.RestoreMain.main(RestoreMain.groovy:55) [stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.JavaVersionCheckingShim.invokeClientClassMain(JavaVersionCheckingShim.java:71) [stash-restore-client.jar:1.6.0]
at com.atlassian.stash.internal.backup.client.JavaVersionCheckingShim.run(JavaVersionCheckingShim.java:85) [stash-restore-client.jar:1.6.0]
... 49 frames suppressed
Caused by: java.lang.ClassNotFoundException: mysql-connector-java-5.1.34-bin.jar
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_65]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_65]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_65]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_65]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_65]
at java.lang.Class.forName(Class.java:191) ~[na:1.7.0_65]
at com.atlassian.stash.internal.backup.client.DefaultRestoreClient.createDataSource(DefaultRestoreClient.groovy:161) ~[stash-restore-client.jar:1.6.0]
... 47 common frames omitted
... 3 frames suppressed
This is on Ubuntu Server 14.04.1 x86_64.
Thanks for the help