目录

  • 前言
  • 准备
  • 拉取镜像
  • 创建但不运行容器
  • 运行容器
  • 命令行登录mysql
  • 修改密码
  • mysql 随 docker 自动启动
  • 设置mysql数据编码格式为utf8mb4
  • 设置mysql表名不区分大小写
  • 重启mysql并查看设置
  • 远程访问授权
  • 参考

前言

  • CentOS 7.9
  • Docker Version: 1.13.1

准备

  • docker 已安装。

  • 选择合适的mysql镜像(mysql:5.7.31)。

拉取镜像

shell> docker pull mysql:5.7.31
Trying to pull repository docker.io/library/mysql ...
5.7.31: Pulling from docker.io/library/mysql
bb79b6b2107f: Pull complete
49e22f6fb9f7: Pull complete
842b1255668c: Pull complete
9f48d1f43000: Pull complete
c693f0615bce: Pull complete
8a621b9dbed2: Pull complete
0807d32aef13: Pull complete
6d2fc69dfa35: Pull complete
56153548dd2c: Pull complete
3bb6ba940303: Pull complete
3e1888da91a7: Pull complete
Digest: sha256:b3dc8d10307ab7b9ca1a7981b1601a67e176408be618fc4216d137be37dae10b
Status: Downloaded newer image for docker.io/mysql:5.7.31
shell> docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world   latest              feb5d9fea6a5        6 weeks ago         13.3 kB
docker.io/mysql         5.7.31              42cdba9f1b08        12 months ago       448 MB

创建但不运行容器

shell> docker create --restart=always --name mysql1 \
-v /data/mysql1/data:/var/lib/mysql \
-v /data/mysql1/conf.d:/etc/mysql/conf.d  \
-e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.7.31
  • --restart=always: 自动运行
  • -v /data/mysql1/data:/var/lib/mysql: 将宿主机的/data/mysql1/data挂载成容器的/var/lib/mysql
  • -v /data/mysql1/conf.d:/etc/mysql/conf.d: 将宿主机的/data/mysql1/conf.d挂载成容器的/etc/mysql/conf.d

运行容器

shell> docker start mysql1

命令行登录mysql

shell> docker exec -it mysql1 bash
root@a6f9e4a700a3:/# mysql -uroot -pmy-secret-pw
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> exit
Bye

或者:

shell> docker exec -it mysql1 mysql -uroot -pmy-secret-pw
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> exit
Bye

修改密码

mysql> set password=password('123456');

mysql 随 docker 自动启动

创建容器未添加--restart=always参数时,可以使用docker update添加。

shell> docker update --restart=always mysql1
  • 每次docker启动时,mysql也会自动启动

设置mysql数据编码格式为utf8mb4

shell> vim /data/mysql1/conf.d/my.cnf
# 打开文件(没有该文件时,创建它)后,添加下面的配置。注意对应节点
[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'

设置mysql表名不区分大小写

shell> vim /data/mysql1/conf.d/my.cnf
-----------------------------
# 打开文件后,添加下面的配置。注意对应节点
[mysqld]
lower_case_table_names = 1

重启mysql并查看设置

shell> docker exec -it mysql1 mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
10 rows in set (0.01 sec)mysql> show variables like '%table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)mysql> exit
Bye

远程访问授权

参考这里。

参考

https://hub.docker.com/_/mysql

【Docker】 安装 mysql相关推荐

  1. Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法

    为什么安装Docker?? ----不知道啊,说是用其安装mysql简单 step1:    首先百度,查找安装的教程,哎,找到了: 如下: https://www.jianshu.com/p/9c9 ...

  2. 虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  3. [转]Docker学习之四:使用docker安装mysql

    本文转自:https://blog.csdn.net/qq_19348391/article/details/82998391 Docker学习之一:注册Docker Hub账号 Docker学习之二 ...

  4. docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置

    在上一篇中<在CentOS7中使用Docker安装MySql>中介绍了怎样在Docker中安装Mysql,但存在两个问题: 1.用户密码和字符集等的设置,需要安装完MySql后,进入到My ...

  5. Docker 安装MySQL以及外部访问

    Docker 安装MySQL以及外部访问 (1)因为我们的镜像是linux环境下的,我所在的系统是windows系统.首先通过docker客户端切换到linux环境下. (2)使用docker pul ...

  6. 史上最详细Docker安装Mysql 带每一步详图及解释 并教你Docker 打印容器日志!!!相信值得你的阅读!!!

    众所周知,如果我们要把项目放在服务器上运行,那么数据存储就是必需的,就用这篇小小文章记录一下我的经历吧. MySQL是一个关系型数据库管理系统,也是是最流行的关系型数据库管理系统之一,在 WEB 应用 ...

  7. docker安装mysql远程不能访问,虚拟机中docker安装mysql远程无法访问解决方法

    #docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d ...

  8. macos docker 安装mysql,mac 中docker安装mysql的图文教程

    今天在docker中安装了mysql ,是自己打的docker包. 首先新建dockerfile 内容如下: from mysql:latest 新建dockerfile后执行build命令: 构建镜 ...

  9. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像

    为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...

  10. docker 安装mysql 实战文档_docker 安装mysql

    PassJava (佳必过) 项目全套学习教程连载中,关注公众号第一时间获取. docker 安装mysql 1.下载镜像 sudo docker pull mysql:5.7 ubuntu@VM-0 ...

最新文章

  1. 如何设计一个良好的接口?
  2. P3812 【模板】线性基
  3. 2013年最值得我们学习的网页作品示例【系列六】
  4. 2048游戏c语言linux简易代码,C语言实现2048游戏代码
  5. Spring : Spring 深入理解lombok
  6. php日志数据统计,PHP统计Nginx日志的User Agent数据
  7. 蓝桥杯2016年第七届C++省赛B组第二题-生日蜡烛
  8. 黑马程序员——C语言基础教程笔记
  9. ISO50001认证咨询,企业申请ISO50001认证前要先进行哪些初始能源评审
  10. 使用pyinstaller打包python源代码生成exe程序
  11. Java动态数组ArrayList
  12. 计算机考研复试经典考题汇总(一次刷新世界观)
  13. 对话乔会君丨两年服务1700家企业,洪泰智造如何锻造下一个独角兽?
  14. meltdown linux 补丁,谈谈CentOS发布内核安全补丁:修复Meltdown和Spectre漏洞
  15. Neural Turing Machines-NTM系列
  16. 计算机工程与应用期刊模板,计算机工程与应用 论文模板
  17. 让旧Mac免费获得 iWork 套件的秘籍
  18. 高三老师给大一学生的一封信
  19. [工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题...
  20. office2016选中、编辑突然变慢

热门文章

  1. Apache Spark探秘:三种分布式部署方式比较
  2. Java程序编译和运行的过程
  3. OC学习之面向对象三大特征
  4. 使用二进制包安装MariaDB
  5. Magento利用input type=”file”上传图片
  6. python中frozenset( )和set()的用法区别
  7. 贪婪算法近似集合覆盖问题的解
  8. 用户sa登陆失败 SQLServer 错误18456的解决方法
  9. go语言条件语句 if else
  10. oracle存储过程获取异常信息码和异常信息