Docker 安装 MySQL5.7

        首先,系统(3.8以上内核的linux)中安装好 Docker 这个运用程序。因为网络缘由,咱们下载一个Docker官方的镜像须要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载速度。 [ 不会的能够参考我以前的文章:Docker <一> 架构简介与Linux上安装 http://www.javashuo.com/article/p-qdsjcbsd-bh.html]。mysql

 

1、Docker 安装 MySQL5.7

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

docker search mysql

        以看到下图所示的信息:linux

        

     二、为选定须要pull到系统中的数据库镜像    

docker pull mysql:5.7

        整个pull过程须要花费一些时间,耐心等待。sql

        由于已经pull过,因此会获得以下提示。docker

        

 

2、查看并启动Docker 镜像

    一、列出已下载的镜像

# 使用 docker images 命令便可列出已下载的镜像

docker images

        执行命令后,可看到相似于以下的表格:数据库

        

    二、列出运行中的容器

# 使用 docker ps 命令便可列出运行中的容器

docker ps

        执行命令后,可看到相似于以下的表格:vim

        

        能够发现,目前有运行的容器。故,删掉原有容器,接下来咱们新建并启动一个新的 MySQL5.7 容器。bash

         使用 docker rm 命令便可删除指定容器(只能删除已中止的容器):网络

# 使用 docker rm 命令便可删除指定容器(只能删除已中止的容器)
docker rm 0164c13b662c

         如需删除正在运行的容器,可以使用 -f 参数:架构

# 如需删除正在运行的容器,可以使用 -f 参数
docker rm -f 0164c13b662c

        如需删除全部的容器(请谨慎使用该命令):工具

# 如需删除全部的容器
docker rm -f ${docker pa -a -q}

 

3、启动容器,使用 Oracle 12c 数据库

    一、新建并启动容器

# 方式一
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 中的配置项。 

# 方式二
docker run -p 3306:3306 --name mymysql -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

 

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

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

-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

 

        二、使用mysql的工具,好比navicat链接成功以下

            

 

4、MySQL5.7设置不区分大小写

        一、普通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

        二、Docker 启动一个不区分大小写的 MySQL 

        方式一:

链接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)

 

        方式二:

# 一
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 mymysql -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 官网教程: https://hub.docker.com/_/mysql/

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

 

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

相关文章
相关标签/搜索