mysql镜像安装

docker镜像安装mysql的好处:方便,容器间互不干扰,可以在同一主机上安装多个版本的mysql,只需要在主机上映射不同的端口即可。

安装mysql镜像

docker search mysql #查找MySql镜像版本
docker pull mysql:5.7 #安装指定版本的mysql镜像,5.7为版本号

启动mysql容器

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -d  -p 3307:3306 mysql:5.7
  • –name 容器的别称
  • -p 端口映射。格式是 主机的端口:容器的端口。
  • -e 设置容器的环境变量。-e MYSQL_ROOT_PASSWORD=123456就代表mysql的root的密码是123456
  • -d 使用镜像包名称,可以通过docker images查看
  • restart=always, 告诉docker,这个容器要自动启动

查看mysql容器是否建立成功并启动:

从host上连接上面启动的容器:

ifconfig #查看下docker虚拟出的ip地址
docker ps -a #查看下容器的运行状态
mysql -h {ip} -P {port} -u root -p #从host连接docker中的MySql

如:

mysql -h172.17.0.1 -P3007 -u root -p123456

如果要用远程用Navicat连接mysql,继续往下看:

以下配置允许远程用honey用户,通过密码honey连接数据库,且只允许操作名为museum_of_art的数据库。

创建honey用户,密码也为honey:

create user'honey'@'%'identified by'honey';

查看用户honey的权限:

show grants for 'honey'@'%';

创建数据库,honey用户只有操作museum_of_art数据库的权限:

create database museum_of_art;

允许用户honey操作museum_of_art表:

grant all on museum_of_art.* to'honey'@'%';

刷新权限:

FLUSH PRIVILEGES;

如果开最大权限:

GRANT ALL PRIVILEGES ON *.* TO 'honey'@'localhost' IDENTIFIED BY 'honey';
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'%' IDENTIFIED BY 'honey';

阿里云服务器如果通过以上设置后远程Navicat还是连不上,请继续往下看。

现在如果在公网上用Navicat 是链接不上的。

原因如下

首先需要登陆阿里云后台,添加阿里云安全组策略 具体位置 -> 网络和安全 -> 安全组 -> 配置规则

可以选择多配置需要的端口。

下面我们需要配置阿里云防火墙

查看下防火墙的状态:

systemctl status firewalld

关闭防火墙:

systemctl stop firewalld

其实这样就可以使用了,但是这样很不安全,我们可以将firewall服务禁用,应用iptables服务(网上大部分启用端口的资料都是基于iptables服务)。

安装iptables

由于没有防火墙会造成不安全,所以给服务器安装一应用更广的防火墙iptables,首先要禁用firewall,通过yum安装iptables:

systemctil disable firewalld
yum install -y iptables-services

启动iptables

systemctl start iptables

启动后可以通过systemctl status iptables查看状态。

更改iptables规则

将iptables文件备份下:

cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

设置 INPUT 方向所有的请求都拒绝

iptables -P INPUT DROP

放开所需端口

iptables -I INPUT -p tcp --dport 3307 -m state --state NEW -j ACCEPT

保存规则

iptables-save > /etc/sysconfig/iptables

设置为开机启动并且重启

systemctl enable iptables.service
systemctl reboot

好了,系统到这里我们需要重新去启动docker

systemctl start docker #运行Docker守护进程

这里如果直接启动镜像的话会报这个错误

那么我们只需要重启下docker ,再去开启你的容器就OK了

systemctl restart docker

那么到这里我们外网就可以正常的去使用阿里云上的mysql服务了。

原文发布于微信公众号 - 我的小碗汤(mysmallsoup)

原文发表时间:2018-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

使用GitLab构建Docker镜像并托管

容器化正迅速成为在云环境中打包和部署应用程序的最常用方法。它提供的标准化,以及其资源效率和灵活性,使其成为现代DevOps思维模式的重要推动者。当您的应用程序和...

1.3K0
来自专栏云计算教程系列

在CVM上安装Ghost个人博客

Ghost是一个轻量级的JavaScript编写的博客平台,基于MIT许可证开放源代码。Ghost的设计主旨是简化个人网站发布以及网上出版的过程。Ghost是一...

1934
来自专栏安恒网络空间安全讲武堂

溯源小记

看对方的目的是什么,就是最终目标是做什么。然后根据自己经验 看看达到这个目标 需要进行什么操作 逆推回去。看看这些过程都会留下什么日志。

1262
来自专栏轻量级微服务

Docker Swarm 进阶: 节点标签与服务

constraints 可以匹配 node 标签和 engine 标签,engine.labels 适用于 Docker Engine 标签,如操作系统,驱动程...

1233
来自专栏宝哥的专栏

Docker系列学习文章 - 存储基本配置(八)

| 导语 通过前面的文章学会后,我们运行一个容器,打包制作一个镜像没啥问题了。但是要真正在生产上运用docker,我们还差两招很重要的。一个是数据卷的配置,还有...

1.5K26
来自专栏运维小白

19.3/19.4/19.6 安装zabbix

安装zabbix 官网下载地址 wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2...

31510
来自专栏晓晨的专栏

ASP.NET Core的身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证

4683
来自专栏云计算教程系列

如何在一些Ubuntu服务器上设置Serf集群

Serf是一种分散的服务编排和服务发现工具。它具有极高的容错能力和分散性,与其他类似工具一样没有单点故障。Serf可用于触发系统集群中的任何事件以及执行监视任务...

1223

Docker - 如何使用SSH连接到正在运行中的容器

本篇文章主要介绍了如何使用SSH将你的Docker容器与其他Docker容器进行连接的方法,如果我忽略了一个或多个重点,请随意评论/建议。

4167
来自专栏分布式系统和大数据处理

基于Docker的持续集成方案(安装和配置MySql) - Part.3

这篇文章介绍了使用Docker安装MySql数据库的操作步骤,以及安装完成后如何对MySql进行配置。

1873

扫码关注云+社区

领取腾讯云代金券