1.使用以下命令从docker Hub去下载MySQL官方提供的docker镜像。默认tag是latest。
docker pull mysql
如果要使用其它tag,则示例如下. "8.0"是tag。什么是tag?tag就是版本号。
docker pull mysql:8.0
2.使用以下命令启动容器.
docker run --name='sky-mysql' -e 'MYSQL_ROOT_PASSWORD=abcd2019' -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql:8.0
注意:以上命令加了“-p 3306:3306”,这是要把容器的3306端口号与宿主机的3306端口做一个映射。
敲黑板啦,划重点了。
安装了MySQL的数据库之类的,我们往往要从远程访问数据,但MySQL在docker的官方帮助页面没有提供相关命令的使用例子。
在上面的命令当中,“-e MYSQL_ROOT_HOST=%” 这个选项就是用来设置允许远程访问的。
在网上搜到一些帖子,提供了其它方法,但试过之后,还是这个方法最管用。
3.进入MySQL容器。
sudo docker exec -it sky-mysql bash
4.在MySQL 容器内部,登录MySQL DB.
如果不用docker,我们安装好了MySQL要做的第一件事往往是登录MySQL。只不过现在这一步是在docker容器里面操作的。
看到下面的-uroot不? root是用户名 ; -p 代表着按了回车后要输入root用户的密码。
root用户如果不记得,请回忆第二条命令的这个选项:-e 'MYSQL_ROOT_PASSWORD=abcd2019'。
mysql -uroot -p
5.使用以下SQL语句去测试,看看我们的MySQL是否真的安装好了。这是在MySQL容器内部操作的。
show databases;
6. 创建一个新的数据库。依然是在MySQL容器内部操作的。
create database galaxy;
7.打开Navicate Premum,连接MySQL。
如上图,能看见我们刚才创建的galaxy数据库,这说明远程连接是成功的。
参考链接:
远程连接docker MySQL
MySQL docker官方帮助页面