码迷,mamicode.com
首页 > 数据库 > 详细

docker stack 部署mysql 5.6

时间:2018-07-01 22:59:06      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:tar   lan   顺序   ports   TE   数据库   word   服务器ip   登录   

===============================================

 2018/7/1_第1次修改                       ccb_warlock

 

===============================================

 mysql作为常用的关系型数据库和项目的关系非常紧密。由于经常需要搭建临时的mysql服务,而临时搭建时大多只是为了临时查点数据,而正常yum或apt-get的方式安装需要下载大量的时间,且还需要从虚拟机快照的角度进行回滚清理环境。故最近尝试了使用docker快速部署,感觉对于非压力负载环境通过docker方式非常轻便,且清理干净。

 

 由于技术能力和公司业务所限,没有尝试过容器mysql的负载能力,按照一些反馈的说法自己搭建mysql容器的性能远远不如云服务器厂商提供的mysql服务(这里我的理解是个人仅仅是搭了mysql容器但是没有做各方面的优化,性能远远无法满足生产环境的要求),所以容器部署mysql仅仅只是研发内部使用,没有足够的能力做优化还是不要急着上生产环境。

 

 mysql默认是关闭远程访问,最近没时间试验部署直接开机远程访问,目前的教程还需要连到mysql容器内部去进行配置,后期有空我会将缺失的内容补上。

 


  一、前提条件

 


 二、部署mysql容器(5.6)

 2.1 创建映射目录 

mkdir -p /usr/docker-vol/mysql/data

 

 2.2 配置mysql-stack.yml

 # 编辑mysql-stack.yml 

vi /root/mysql-stack.yml

# 添加下面的内容到mysq-stack.yml中,wq保存 

version: ‘3.6‘
services:

  mysql:
    image: mysql:5.6.40
    environment:
      # 设置时区为Asia/Shanghai
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - /usr/docker-vol/mysql/data:/var/lib/mysql
    deploy:
      replicas: 1
      restart_policy:
        condition: any
      resources:
        limits:
          cpus: "0.2"
          memory: 512M
      update_config:
        parallelism: 1 # 每次更新1个副本
        delay: 5s # 每次更新间隔 
        monitor: 10s # 单次更新多长时间后没有结束则判定更新失败
        max_failure_ratio: 0.1 # 更新时能容忍的最大失败率
        order: start-first # 更新顺序为新任务启动优先
    ports:
      - 3306:3306
    networks:
      - myswarm-net

networks:
  myswarm-net:
    external: true

 

 2.3 部署服务栈 

 1)命令方式

cd
docker stack deploy -c mysql-stack.yml mysql-stack

 

 2)portainer界面方式(推荐)

 登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加mysql-stack.yml文件中的内容)

 


 三、配置mysql允许远程IP访问

 官方提供的镜像和安装在linux的配置一样,初始只允许本地服务访问mysql,需要调整mysql的配置之后才能达到远程连接的目的。(正如前面讲的,目前的方案并不是很合理,将来需要优化这个方式)

 

# 获取容器id

docker ps

找到mysql-stack_mysql.*******************的CONTAINER ID(我这里的是0d66abc8ce32)

 

# 进入容器

docker exec -it 0d66abc8ce32 /bin/bash

 

# 登录mysql

mysql -uroot -p

输入初始化的root密码123456登录。

技术分享图片

 # 进入mysql库

mysql> use mysql;

# 设置允许root用户用于通过任意IP访问mysql

mysql> grant all privileges  on *.* to root@‘%‘ identified by "123456";

# 使配置立即生效

mysql> flush privileges;

# 退出mysql

mysql> exit

  

# 退出容器

exit

 

 接着用navicat连接192.168.12.11:3306,用户名/密码:root/123456,提示连接成功,说明mysql容器已经可以使用了。

 技术分享图片

docker stack 部署mysql 5.6

标签:tar   lan   顺序   ports   TE   数据库   word   服务器ip   登录   

原文地址:https://www.cnblogs.com/straycats/p/9251571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!