docker+mysql 阿里服务器远程连接
1、docker搜索mysql版本
docker search mysql
2、拉下mysql镜像,我拉的是5.7的
docker pull mysql:5.7
docker images 可以查看是否下载成功镜像
3、创建并启动mysql容器
docker run -d --name mysql5-3306 -p 3306:3306 -e MYSQL_ROOT_PASSWORD='数据库密码' mysql:5.7
其中-d 是指后台运行,
--name 是给该容器起名字,
-p是端口号,
MYSQL_ROOT_PASSWORD设置的是你连接数据库时候输入的密码,比如下图的密码

最后mysql:5.7,是你刚刚下载的mysql镜像,冒号后面是版本号,如果不加会重新弄最新版本(未测)
4、访问mysql(如果这里访问不上,可以考虑是否服务器没有添加3306端口,看6.1.1)
进入到容器内部
docker exec -it mysql5-3306 bash
这里的mysql5-3306是你刚刚启动时候给容器起的名字
连接mysql数据库
mysql -u root -p
或者 mysql -uroot -p密码
输入数据库密码即可,即上面填写的MYSQL_ROOT_PASSWORD
5、授权其他机器登陆
5.1授权其他机器登陆
grant all privileges on *.* to 'root'@'%' identified by '数据库密码' with grant option;

5.2刷新权限:
flush privileges;

5.3退出
exit;
6,在这个时候远程

6.1注意,前面一直没有讲到关于阿里服务器,如果你现在不能连接,你去看看你的服务器有没有开通3306端口,因为我以前用过,所以我先开通了,没有遇到是端口没开通的错误,这里记录一下可能会错的点
6.1.1 3306端口的开通


6.2 报错access denied for user root@120.239.220.9(using password:Yes)
是因为我授权的时候
grant all privileges on *.* to 'root'@'%' identified by '数据库密码' with grant option;数据库密码没有填对,然后密码不对应连接的报错,这个坑了我挺久的。
未测:
注意:(如果阿里云服务器部署和访问,防火墙默认是关闭的,需要手动开启)
https://www.cnblogs.com/kccdzz/p/8110143.html
阿里云控制组中加入该权限:
该笔记是观看哔哩哔哩视频总结
暂时就这些问题,如果有什么建议或者意见的可以互相商量探讨一下,初次使用docker,多多指教