Linux / win 下 用docker 安装 MySql8.0 容器

145 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

不废话 直接开搞

1.搜索mysql镜像

docker search mysql

2.下载mysql镜像(默认最新版本)

docker pull mysql

3.运行镜像,设置root账号初始密码(123456),映射本地宿主机端口3310到Docker端口3306

不挂载本地磁盘(重启后数据不会丢失,挂载容器磁盘)

docker run -it --rm --name mysql8.0 -e TZ=Asia/Shangha -e MYSQL_ROOT_PASSWORD=123456 -p 3310:3306 -d mysql

挂载本地磁盘(不随系统自动启动)

docker run -it --rm -v D:/docker/mysql/data:/var/lib/mysql -v D:/docker/mysql/config/my.cnf:/etc/mysql/my.cnf --name mysql8.0 -e TZ=Asia/Shangha -e MYSQL_ROOT_PASSWORD=123456 -p 3310:3306 -d mysql

挂载本地磁盘(随系统自动启动)

docker run -it -v D:/docker/mysql/data:/var/lib/mysql -v D:/docker/mysql/config/my.cnf:/etc/mysql/my.cnf --restart=always --name mysql8.0 -e TZ=Asia/Shangha -e MYSQL_ROOT_PASSWORD=123456 -p 3310:3306 -d mysql
解释:
    -e TZ=Asia/Shangha        已经设置好时区
    D:/docker/mysql/xxxxx     开头得为本地磁盘

注意:挂载本地磁盘时本地路径需要手动创建;本地配置文件不能为空,需要添加必要的配置信息比如如下配置:

# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 
# 
# This program is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation; version 2 of the License. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program; if not, write to the Free Software 
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 
# 
# The MySQL Server configuration file. 
# 
# For explanations see 
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html [mysql] 

# 设置mysql客户端默认字符集 
default-character-set=utf8 

[mysqld] 
pid-file = /var/run/mysqld/mysqld.pid 
socket = /var/run/mysqld/mysqld.sock 
datadir = /var/lib/mysql 
secure-file-priv= NULL 

# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

# 服务端使用的字符集默认为8比特编码的latin1字符集 
character_set_server = utf8 
# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB 
# 设置不区分大小写 
# 必须在安装好MySQL后 修改mySQL配置文件设置为不敏感,一旦启动后,再设置是无效的,而且启动报错; 
# 如果已经晚了,那必须把MySQL数据库文件全部 删除,修改配置文件再启动。 
lower_case_table_names=1

4.查看已运行的容器

docker ps -a

5.进入mysql容器

docker exec -it mysql8.0 bash

6.在容器内登录Mysql

mysql -u root -p

7.查看用户信息

select host,user,plugin,authentication_string from mysql.user;

备注:host为 % 表示不限制ip   localhost表示本机使用    plugin非mysql_native_password 则需要修改密码

ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 
FLUSH PRIVILEGES;

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情