By default MySQL deployed in docker has no access outside of docker network. This quick guide shows how to enable access to MySQL database from outside network.
First run MySQL from docker:
$ docker run -d --name=dd-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=TempPassword mysql/mysql-server
After Mysql container is running login to via docker command:
$ sudo docker exec -it dd-mysql /bin/bash
Login to MySQL database providing user name and password set during container creation:
$ mysql -u root -pTempPassword
Then switch to the “mysql” database:
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Set the host to “%” so it can be possible to login from any address:
mysql> update mysql.user set host = '%' where user='root';
At the end flush privileges to have it working:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
That is it. Test it by login from your local machine or from machine from your local network. If you don’t have mysql client install it (example from Ubuntu):
$ sudo apt install mysql-client-core-8.0
$ mysql -u root -pTempPassword -h localhost
Or you can use application like Mysql Workbench.
Leave a Reply