External MySQL



  • Hello.

    I just quickly wanted to ask how I'd get access to my Lamp Stack's DB from outside (minecraft server).

    I've opened the 3306 port in ufw and I edited the my.cnf.

    Still can't reach it. What do I have to do?



  • @Trankery The mysql that is allocated to apps is run as a separate container (named mysql) and is not accessible from the outside directly. Instead, what you can do is to use the CLI tool to access it - https://cloudron.io/documentation/custom-apps/addons/#mysql

    May I ask why you want to access it from outside? I can probably give a better solution depending on the use case. But if you want to access from your laptop/PC:

    1. Install the CLI tool - https://cloudron.io/documentation/custom-apps/cli/

    2. cloudron exec

      # mysql --user=${CLOUDRON_MYSQL_USERNAME} --password=${CLOUDRON_MYSQL_PASSWORD} --host=${CLOUDRON_MYSQL_HOST} ${CLOUDRON_MYSQL_DATABASE}
      
      mysql> this is the mysql shell
      


  • As I said, a minecraft server needs to access it.



  • Am I able to open this container to the outside?

    I don't really mind about security too much here.



  • There is no easy way to make the internal mysql server public without changing the code and I don't know what that will break.

    I think you can setup a ssh tunnel between your minecraft server and the Cloudron.

    Something like https://www.linode.com/docs/databases/mysql/create-an-ssh-tunnel-for-mysql-remote-access/

    Do this on Cloudron:

    docker inspect mysql | grep IPAddress
                        "IPAddress": "172.18.0.4",
    

    So, 172.18.0.4 is the IP of mysql server. Then, you can get the db credentials using the web terminal of the LAMP app:

        env | grep CLOUDRON_MYSQL_
    

    You can then connect using the above credentials as:

    mysql --host=172.18.0.4 --user=<username> --password=<password> <db>
    

    After the above works, you just setup SSH tunnel accordingly.


Log in to reply