While troubleshooting an issue you maybe asked to run a SQL statement on your database Docker container, or you may want to run a statement yourself for another purpose. To do either of these things there are two options.
- Using the command line
- Using the GUI called PhpMyAdmin
Command Line
Before you can run a statement inside the docker container you will need to find the container name. This can be done using the docker ps
command.
The resulting output will show a list of running docker containers, one of these will be the web
container. Depending on your folder name, that will look something like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28a6c69ec7be xibosignage/xibo-cms:latest "/entrypoint.sh" 2 weeks ago Up 16 seconds 0.0.0.0:80->80/tcp xibocms_web_1
a8fdca5d77dd xibosignage/xibo-xmr:latest "/entrypoint.sh" 2 weeks ago Up 17 seconds 0.0.0.0:9505->9505/tcp, 50001/tcp xibocms_xmr_1
a21e1b4c6558 mysql:5.6 "docker-entrypoint..." 6 weeks ago Up 17 seconds 0.0.0.0:3315->3306/tcp xibocms_db_1
You’re looking for the container name with web
in the name - in the example above that is xibocms_web_1
. Then, substitute name
in the following:
docker exec -ti name bash
That will get you a shell inside the web container. To connect to MySQL, you’d then run
mysql -u cms -h mysql -p cms
The password will be the one you set in config.env
when you installed Xibo.
Please avoid making direct changes to your data as we can’t offer support once you’ve done so. Many of the tables reference each other so it’s not safe to delete or modify things directly, unless you have been specifically asked to do so.
PhpMyAdmin
We can add PhpMyAdmin as an extra Docker container which can be started and stopped when you need to access the database.
You need two things. First, name of your MySQL container, which you can get by running docker ps
as per the Command Line instructions above. You need the one with cms-db
in the name. Second, you need the name of the network the MySQL container is running in, which you can get by running docker network ls
For example:
- Container name:
xibodocker_cms-db_1
- Network name:
xibodocker_default
You also need to pick a port for PHPMyAdmin to be available on, you can choose any available port number, I chose 8080 which would be suitable on most systems that are dedicated to Xibo.
You would then run a statement to create and run a docker container for PhpMyAdmin:
docker run --name phpmyadmin -d --network=xibodocker_default --link xibodocker_cms-db_1:db -p 8080:80 phpmyadmin/phpmyadmin
PHPMyAdmin will then be running on port 8080, and you would log in with the username cms and the password you picked in config.env.
When you’re done with PHPMyAdmin, you can simply run docker stop phpmyadmin
to stop it temporarily (and then docker start phpmyadmin
to start it again if needed later), or docker rm phpmyadmin
to remove it completely.