悠然小屋

不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻!

«   2020年10月   »
1234
567891011
12131415161718
19202122232425
262728293031
搜索
Tags列表
最新留言
    最近发表
    文章归档
    友情链接

      使用Docker搭建MySQL服务

      建立镜像#

      1. 拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版)

        docker pull mysql:5.7   # 拉取 mysql 5.7
        docker pull mysql       # 拉取最新版mysql镜像


      1. 检查是否拉取成功

          docker images
      2. 一般来说数据库容器不需要建立目录映射

        docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

         

        • –name:容器名,此处命名为mysql

        • -e:配置信息,此处配置mysql的root用户的登陆密码

        • -p:端口映射,此处映射 主机3306端口 到 容器的3306端口

      3. 如果要建立目录映射 

        mkdir -p /data/docker/mysql/conf

        mkdir -p  /data/docker/mysql/logs

        mkdir  -p /data/docker/mysql/data

         docker run -p 3306:3306 --name mysql \
        -v /data/docker/mysql/conf:/etc/mysql \
        -v /data/docker/mysql/logs:/var/log/mysql \
        -v /data/docker/mysql/data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=123456 \
        -d mysql:5.7



      4.  

        •  docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/conf.d -v /data/docker/mysql/logs:/var/log/mysql -v /data/docker/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --restart=always --privileged=true -d mysql:5.7

        • -v:主机和容器的目录映射关系,":"前为主机目录,":"之后为容器目录

      5. 检查容器是否正确运行

         docker container ls
        • 可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字



      配置文件最好是以.cnf作为后缀, 试过以.conf后缀, 可以启动mysql, 但配置文件不起作用

      mysql.cnf  文件内容

      [client]

      default-character-set=utf8 

      [mysql]

      default-character-set=utf8 

      [mysqld]

      init_connect='SET collation_connection = utf8_unicode_ci'

      init_connect='SET NAMES utf8'

      character-set-server=utf8

      collation-server=utf8_unicode_ci

      skip-character-set-client-handshake

      # default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION# modeified: sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

      max_allowed_packet=10M

      default-time_zone='+8:00'




      进入docker本地客户端设置远程访问账号


      docker exec -it mysql bash$ mysql -uroot -p123456


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

      或许你会感兴趣的文章——

      Powered By Z-BlogPHP 1.5.2 Zero & Theme by Washun Copyright Csuper All Rights Reserved. 湘ICP备18017694 网络是工具,不是玩具 QQ:493754678 [登录]