docker笔记5--配置MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
1、安装方法
1)下载mysql的docker镜像
docker pull mysql:5.7 (笔者此处使用5.7版本)
2)新建本地文件 如 data、logs、conf等文件夹用来保存数据
3)启动mysql,可以通过官方文档设置需要的启动方式,笔者使用的启动命令如下(建议写到shell脚本中):
docker run \
--name xgmysql \
-p 3307:3306 \
-v $PWD/data:/var/lib/mysql \
-v $PWD/logs:/logs \
-v $PWD/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=YourPasswd \
-d mysql:5.7
启动后,xgmysql容器相应目录文件都将映射到$PWD/对应目录中,启动后会生成一个root用户,密码为YourPasswd;为了防止和本机3306端口冲突,笔者将容器3306映射到server本机3307端口。
4)mysql启动后,通过docker exec -it xgmysql /bin/bash进入xgmysql容器命令行,然后通过mysql -uroot -p进入mysql命令行,如下图所示:

dockerhub安装文档:https://hub.docker.com/_/mysql/
2、映射Docker MySQL到非本机MySQL Workbench
1)进入mysql命令行,设置其非本机ip访问权限
docker exec -it xgmysql /bin/bash进入xgmysql容器命令行;
mysql -uroot -p进入mysql命令行;
grant all privileges on *.* to root@'%' identified by "YourPasswd";
flush privileges;
2)在MySQL Workbench中新建链接
3)通过以上步骤后,若无网络出入站规则限制,我们就可以通过ip,3307,root访问docker版mysql了,由于大多数云服务器供应商都做了网络出站规则限制,因此需要开放相应端口的才能正确访问mysql。
此处,以腾讯云服务器为例,其出站规则设置如下(若需要限制ip访问,则可更改 来源 中的ip网址形式):
4)sql workbench连接数据库出现10061错误
出现该错误一般为 /etc/mysql/mysql.conf.d/mysqld.cnf中
bind-address = 127.0.0.1
未注释,导致智能本地访问,将其注释掉即可正常访问远程数据库。
5) mysql初次安装后workbench无法访问问题