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/

相關文章
相關標籤/搜索