本篇将介绍如何使用 Docker 部署 MySQL 数据库及远程访问配置。

安装 MySQL

拉取镜像

使用下面的命令拉取 MySQL 数据库的镜像:

$ sudo docker pull mysql  # 拉取最新版本的镜像,当前为 MySQL 8 版本,tag 为 latest$ sudo docker pull mysql:5.7 # 指定拉取 MySQL 5.7 版本

也可以使用搜索命令,查找其他的 MySQL 相关镜像,其中有标识 Stars 数,即受欢迎程度。

$ sudo docker search mysql

运行 MySQL

$ sudo docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your-password -d mysql

命令说明:

  • -p 3306:3306 :将容器的 3306 端口映射到主机的 3306 端口。
  • -v $PWD/conf:/etc/mysql/conf.d :将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs :将主机当前目录下的 logs 目录挂载到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=your-password :初始化 root 用户的密码,建议使用复杂度高的密码。
  • -d mysql : 要部署的镜像名,如果是5.7版本的话,这里则为mysql:5.7

配置远程访问

远程访问 MySQL 属于基本配置,但是在配置的时候要注意安全性问题,否则将存在安全性隐患,尤其是企业用服务器更要注重安全性。

并且需要注意服务器防火墙要开启 3306 端口,服务器提供商的安全组中也需要开启,否则会无法访问哦。

要配置远程访问,先要打开 MySQL 的控制终端,使用下面的命令开启:

$ sudo docker exec -it mysql bash # 进入 MySQL 容器$ mysql -uroot -p # 登录 MySQL,执行后输入密码进入 MySQL$ use mysql; # 选择使用 mysql 数据库

MySQL 8 配置

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
# 创建一个账号,用来进行远程访问;
# {usernama} 是远程访问登录的用户名,不建议用 root;
# {password} 是远程访问的登录密码;
# '%'代表的是所有IP,如果可以尽量设置指定 IP 或 IP 段GRANT ALL ON *.* TO 'username'@'%';
# 赋予所有权限给之前创建的账号ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# 确认使用这里的密码登录此账号FLUSH PRIVILEGES;
# 刷新权限

完整命令如下所示:

CREATE USER 'james'@'%' IDENTIFIED BY '123456asd';
# 创建一个账号-james,用来进行远程访问;GRANT ALL ON *.* TO 'james'@'%';
# 赋予所有权限给之前创建的账号:jamesALTER USER 'james'@'%' IDENTIFIED WITH mysql_native_password BY '123456asd';
# 确认使用密码{123456asd}登录此账号{james}
# 密码尽量复杂,安全性更高。FLUSH PRIVILEGES;
# 刷新权限

配置完毕后,使用 Navicat 工具或其他工具进行连接测试即可。

MySQL 5.7 配置

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# {usernama} 是远程访问登录的用户名,不建议用 root;
# {password} 是远程访问的登录密码;
# '%'代表的是所有IP,如果可以尽量设置指定 IP 或 IP 段FLUSH PRIVILEGES;
# 刷新权限

配置完毕后,使用 Navicat 工具或其他工具进行连接测试即可。

注:如果无法访问请注意防火墙 3306 端口是否开启,服务器提供商的安全组中的端口是否开启。

更多技术文章欢迎关注我的博客主页:http://JemGeek.com

点击阅读原文

docker安装mysql_Docker 安装 MySQL相关推荐

  1. docker二进制安装mysql_Docker搭建MySQL读写分离主从模式 分布式数据库中间件Mycat分库分表应用...

    一.MySQL读写分离主从模式 1. 下载镜像 docker pull mysql 当前最新版本:mysql Ver 8.0.19 for Linux on x86_64 (MySQL Communi ...

  2. docker 安装mysql_Docker安装MySQL完整版流程

    我们自己在linux上安装mysql的话,超级麻烦,安装完后还要进行各种各样的配置,之前在docker专题写了用docker安装mysql的快速版本以及修改编码的方式,这里总结一下安装流程和命令. 环 ...

  3. docker yml mysql_Docker安装Mysql(docker-compose.yml)

    #########Docker命令查看对应MySQL容器的ContainerID/Image等信息######### C:\Workspace\Docker\MySQL>docker ps CO ...

  4. 阿里docker安装mysql_docker安装mysql

    从阿里云的Docker Hub 上pull一个MySQL的image. docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5 ...

  5. nas4free 安装mysql_Docker安装MySQL

    本节将介绍在线使用Docker安装MySQL数据库的步骤.通过本节的实操,您可以掌握从Docker环境的使用,MySQL镜像的拉取.导入.MySQL容器的启动,再到MySQL命令行的连接等相关操作,从 ...

  6. docker卸载mysql_docker安装,卸载和入门

    Docker 简介 背景 开发和运维之间因为环境不同而导致的矛盾 集群环境下每台机器部署相同的应用 DevOps(Development and Operations) 简介 Docker是一个开源的 ...

  7. mac 源生安装mysql_docker安装MySQL数据库

    本文说明,刚上来使用MySQL高版本的,结果MySQL容器正常运行后,外部客户端连接不上,最后降低版本就OK 拉取MySQL数据库镜像 # docker pull daocloud.io/librar ...

  8. docker java mysql_Docker 搭建 MySQL 服务

    安装 Docker 请参考我的另一篇文章 建立镜像 拉取镜像 # 拉取最新版本镜像 docker pull mysql # 拉取执行版本镜像 docker pull mysql:版本号 检查拉取是否成 ...

  9. docker 使用tar安装mysql_Docker安装MySQL

    不要删除 以 MySQL 5.7 安装为例. 1.拉取镜像或者导入镜像拉取镜像docker pull mysql:5.7导入镜像docker load < mysql.tar 2.创建用于挂载的 ...

最新文章

  1. 方向对了,就能学好Linux
  2. 对ajax回调函数的研究
  3. 在Access和 SQL Server中通配符的应用方法
  4. 使用Android Studio搭建Android集成开发环境(图文教程)
  5. 计算机图形学多边形填充代码_零基础学计算机图形学太难?或许你缺的只是一本好书...
  6. 在Android应用外获取app的签名
  7. 关于Git下载上传项目的操作指令
  8. 2.mysql优化---增删改优化
  9. phython拟合曲面方程_python数据关系型图表散点图系列曲面拟合图
  10. java有关问题,Java常见有关问题和解决方法
  11. PHP配置问题(找不到指定模块)解决办法
  12. 181228每日一句
  13. SQL Server 2016 安装
  14. html怎么把正方形改成圆形,css中如何把正方形变成圆形
  15. 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
  16. 【震驚】中国电信接管CDMA业务,內部FAQ (注意所有括弧的內容)
  17. 实现Linux与windows文件互传
  18. 语音转换文字工具,怎么将语音转换成文字
  19. 花花世界的flowers in December
  20. NBUT 1578-The smart Big Pang Pang【博弈论】 难度:**

热门文章

  1. django模板系统(下)
  2. AOP原理解析及Castle、Autofac、Unity框架使用
  3. MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
  4. 利用BBRSACryptor实现iOS端的RSA加解密
  5. 使用jQuery queue(队列) 遇到的问题及解决方案
  6. 个推应用统计产品(个数)Android集成实践
  7. React 产品实现 -任务管理工具“氢”
  8. jquery easyui DataGrid 数据表格 属性
  9. Linux驱动开发必看详解神秘内核(完全转载)
  10. 持久代是方法区还是堆中的?