Docker 安装MySQL 5.7

首先已经安装好了docker应用;

1、查看docker仓库中的mysql命令

➜  ~ docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   8364                [OK]
mariadb                           MariaDB is a community-developed fork of MyS…   2866                [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   623                                     [OK]
percona                           Percona Server is a fork of the MySQL relati…   438                 [OK]
centurylink/mysql                 Image containing mysql. Optimized to be link…   60                                      [OK]

2、为选定的需要pull到本地系统中的镜像

~ docker pull mysql:5.7
5.7: Pulling from library/mysql
fc7181108d40: Downloading [============>                                      ]  5.528MB/22.49MB
787a24c80112: Download complete
a08cb039d3cd: Downloading [==========================================>        ]    3.8MB/4.501MB
4f7d35eb5394: Waiting
5aa21f895d95: Waiting
a742e211b7a2: Waiting
...

3、完成后可以用docker列出已经下载的镜像

➜  ~ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
mysql                             5.7                 a1aa4f76fab9        4 weeks ago         373MB
reg.changhong.io/library/alpine   3.9                 f44e897edb03        3 months ago        8.87MB
reg.changhong.io/library/alpine   3.8                 196d12cf6ab1        10 months ago       4.41MB

docker rm 命令说明:

docker rm xxx   删除已经停止的容器xxx

docker rm -f  xxx 可以删除正在运行的容器xxx

docker rm -f ${docker pa -a -q}  删除所有的容器

4、启动容器

  1. 方式一
  2. docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

      MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。 

  1. 方式二
  2. docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs
  3. -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口

-v $PWD/conf:/etc/mysql/conf.d:将主机当前路径下的conf目录挂载到容器的/etc/mysql/conf.d目录

-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data

-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

--lower_case_table_names=1 设置表名参数名等忽略大小写

-v /etc/localtime:/etc/localtime:ro   设置容器的时间与宿主机同步

查看日志

docker log -f 容器启动后生成唯一ID

 

5、安装后的修改:

5-1、普通linux系统安装MySQL之后的处理方式

# MySQL 5.7以前的版本的修改

sudo  vi /etc/MySQL/my.cnf

在[mysql]

下添加一行

lower_case_table_names=1


# MySQL 5.7版本的修改则在/etc/mysql/my.cnf这个目录下。

# 验证是否修改成功,如果value为1则不区分大小写了

mysql> show variables like '%case_table%';
 +------------------------+-------+
 | Variable_name          | Value |
 +------------------------+-------+
 | lower_case_table_names | 1    |
 +------------------------+-------+
 1 row in set (0.00 sec)

 

# 但是在mysql5.7.19中,mysql 配置文件是放在/etc/mysql/mysql.conf.d/mysqld.cnf,

vim /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]下加入一行:
lower_case_table_names=1

 

5-2、docker启动一个区分大小写的Mysql

方式1:

连接MySQL:

查看当前mysql的大小写敏感配置
show global variables like '%lower_case%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | ON    |
| lower_case_table_names | 0     |
+------------------------+-------+
lower_case_file_system
表示当前系统文件是否大小写敏感,只读参数,无法修改。
ON  大小写不敏感
OFF 大小写敏感

进入docker的MySQL容器,编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下:

[mysqld]
lower_case_table_names=1

保存,退出容器;

执行sudo docker restart MySQL ,重启MySQL即可查看:

mysql> show global variables like '%lower_case%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+
2 rows in set (0.00 sec)

方式2:

# 一
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
--lower_case_table_names=1

# 二
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs
-v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

 

关键命令:

--lower_case_table_names=1 设置表名参数名等忽略大小写

 

我自己的启动测试命令如下:

docker run -p 3306:3306 --name mysql5.7 -v /Volumes/data/develop/mysql/5.7/logs:/var/log/mysql -v /Volumes/data/develop/mysql/5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -e TZ='Asia/Shanghai' -d mysql:5.7 --lower_case_table_names=1

# password 自己修改成自己的密码,

--restart=always  表示可自动重启

如果需要自己定义的配置文件则 添加  -v /Volumes/data/develop/mysql/conf/my.cnf 宿主机文件;/etc/mysql/my.cnf docker容器内的目录文件

 docker安装启动成功后,可以用命令:

[root@chtest ~]# docker exec -it mysql bash

进入docker容器,修改mysql 访问授权

root@da55138960a4:/# mysql -h localhost  -uroot  

 mysql> grant all privileges on *.* to root@"%" identified by "chbigdata" with grant option;

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges; 

Query OK, 0 rows affected (0.00 sec)

 

        ·  Docker 官网教程: https://hub.docker.com/_/mysql/

        ·  Docker MySQL5.7官网教程:  https://hub.docker.com/r/cytopia/mysql-5.7/

https://www.cnblogs.com/linjiqin/p/8608975.html (docker容器创建、启动、停止)

 

(0)

相关推荐

  • Docker学习笔记之--借助Docker Compose进行多容器部署(环境:centos7)

    接下来演示借助Docker Compose进行多容器部署. 前边的章节演示尽管可以实现需求功能,但是在生产环境当中,维护起来显然很麻烦,所以下边演示借助Docker Compose功能,实现一键部署! ...

  • Docker实战之MySQL主从复制

    前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的 ...

  • Docker学习笔记之--安装mysql 并持久化数据到本地,最后使用Navicat连接测试(环境:centos7)

    在docker中 安装 mysql 8.0版本,参考文档:https://www.runoob.com/docker/docker-install-mysql.html 第一步:安装 docker p ...

  • docker学习4-docker安装mysql环境

    前言 docker安装mysql环境非常方便,简单的几步操作就可以了 拉取mysql镜像 先拉取mysql的镜像,可以在docker的镜像仓库找到不同TAG标签的版本https://hub.docke ...

  • 群晖docker安装Emby并开启硬件解码

    最近在群晖中安装了Emby,使用体验很不错,现在将自己的安装过程分享出来 目前群晖中安装emby主要有两种方式,一是通过在套件中心中添加源来安装,二是通过docker来安装.我选择的是通过docker ...

  • 群晖使用docker安装&使用EMBY全流程教程

    前言 其实老早就想写这篇教程,一直偷懒不想写 为什么不选择PLEX OR Jellyfin,三者我都体验过,论综合体验emby实在胜过二者太多,现代化的前端页面,优秀的刮削体验,高度自定义的设置,丰富 ...

  • Docker安装solo博客部署到云服务器教程

    目录 1. Docker 部署 2. 日志配置 3. Nginx 反向代理 Solo 是一款小而美的开源博客系统,专为程序员设计.Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回 ...

  • Linux服务器部署.Net Core笔记:六、安装MySQL

    接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源 ...

  • Docker安装及部署

    Docker百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器 ...

  • 利用群晖docker安装AdGuard Home搭建一个带广告过滤的私有DNS服务器

    根据AdGuard Home 官网介绍,AdGuard Home 是一款全网广告拦截与反跟踪软件.在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件.随着物联网与连接设备的兴 ...

  • docker安装配置

    ###########################################docker安装配置#环境centos7 #配置docker阿里源echo '#Docker[docker-ce- ...