Xibo on Docker can't export the database


#1

Hi,

I’m stuggling with a problem with database export. I started to have this problem many versions ago (I think it was Xibo 1.4, around 2013). Upgrading was usually smooth from version to version. Later from LAMP to Docker. Now my Xibo 1.8.8 runs completely on Docker but I still can’t make database backup.
Configuration Error - Database dump failed.
The automatic backup in shared/backup/db/latest.sql.gz was also never created.
Now I’m seriously considering building a completely new Xibo database from scratch. But I would love to avoid it if possible.

How can I troubleshoot this?

I generated the troubleshoot.zip file. How can I send it?

Thanks in advance for any help.
Jakub


#2

When I had Xibo on LAMP I could just use phpmyadmin to export the database but inside the Docker container there is no phpmyadmin (or I don’t know how to access it).


#3

Where do you see the message “Configuration Error - Database dump failed.”?

I don’t think starting over is necessary - we just need to understand what the situation is so we can tell you how to fix it.

You can run a manual database dump at any time.

Use that to get a shell inside the cms-web container. Instead of running mysql -u cms -h mysql -p cms to access MySQL command line, you instead run:

mysqldump -u cms -h mysql -p cms > /var/www/cms/library/temp/backup.sql

That will create a file backup.sql in your CMS library temp directory, which you can pickup from outside the container.

Assuming that works, then I would guess that the password you’ve chosen for your MySQL user contains special characters (ie isn’t long and alpha-numeric only), in which case the special characters can prevent the backup working properly.

You’d need to change it to something that fits the requirement in your config.env file, as well as inside MySQL itself and then down/up the containers. Automatic backups will then work as expected.


#4

Hi Alex,

I had no idea it could be related to the password complexity! You are correct. My database password contains characters like colons and brackets.
Changing it in config.env is easy. But how should I change it in the MySQL?

MySQL [cms]> UPDATE mysql.user SET Password=PASSWORD(‘SomeNewPassword’) WHERE User=‘cms’ AND Host=‘cms’;
ERROR 1142 (42000): UPDATE command denied to user ‘cms’@‘172.18.0.2’ for table ‘user’

Kind regards,
Jakub


#5

You can do it from the mysql container using the mysqladmin command:

mysqladmin -u cms -p password

It will prompt for the old password, and the new password twice.

You then exit the container, update config.env and down/up the containers.


#6

Alex, you are my hero! :slight_smile:
The automatic database backup works properly after changing the password.

But still the manual database export from Settings -> Export doesn’t work. But it is for a different reason now:

First I see:

Export Database Backup

This will create a dump file of your database that you can restore later using the import functionality.

You should also manually take a backup of your library.

Please note: The folder location for mysqldump must be available in your path environment variable for this to work and the php exec command must be enabled.

And when I click on “Export Database” button the I get this:

Not Found

The requested URL /index.php was not found on this server.

Kind regards,
Jakub


#7

It doesn’t work and has been removed. Don’t use it!


#8

All clear! This topic can be closed.
Thanks!