前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql镜像安装

mysql镜像安装

作者头像
我的小碗汤
发布2018-08-22 10:58:35
2.2K0
发布2018-08-22 10:58:35
举报
文章被收录于专栏:我的小碗汤我的小碗汤

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

安装mysql镜像

代码语言:javascript
复制
docker search mysql #查找MySql镜像版本
docker pull mysql:5.7 #安装指定版本的mysql镜像,5.7为版本号

启动mysql容器

代码语言:javascript
复制
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上连接上面启动的容器:

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

如:

代码语言:javascript
复制
mysql -h172.17.0.1 -P3007 -u root -p123456

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

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

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

代码语言:javascript
复制
create user'honey'@'%'identified by'honey';

查看用户honey的权限:

代码语言:javascript
复制
show grants for 'honey'@'%';

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

代码语言:javascript
复制
create database museum_of_art;

允许用户honey操作museum_of_art表:

代码语言:javascript
复制
grant all on museum_of_art.* to'honey'@'%';

刷新权限:

代码语言:javascript
复制
FLUSH PRIVILEGES;

如果开最大权限:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'localhost' IDENTIFIED BY 'honey';
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'%' IDENTIFIED BY 'honey';

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

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

原因如下

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

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

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

查看下防火墙的状态:

代码语言:javascript
复制
systemctl status firewalld

关闭防火墙:

代码语言:javascript
复制
systemctl stop firewalld

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

安装iptables

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

代码语言:javascript
复制
systemctil disable firewalld
yum install -y iptables-services

启动iptables

代码语言:javascript
复制
systemctl start iptables

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

更改iptables规则

将iptables文件备份下:

代码语言:javascript
复制
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

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

代码语言:javascript
复制
iptables -P INPUT DROP

放开所需端口

代码语言:javascript
复制
iptables -I INPUT -p tcp --dport 3307 -m state --state NEW -j ACCEPT

保存规则

代码语言:javascript
复制
iptables-save > /etc/sysconfig/iptables

设置为开机启动并且重启

代码语言:javascript
复制
systemctl enable iptables.service
systemctl reboot

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

代码语言:javascript
复制
systemctl start docker #运行Docker守护进程

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

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

代码语言:javascript
复制
systemctl restart docker

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装iptables
  • 启动iptables
  • 更改iptables规则
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档