docker 部署mysql8.0

Posted 有过~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 部署mysql8.0相关的知识,希望对你有一定的参考价值。


这个平台第一篇博客记录下,哈哈哈哈

有一说一,这些文档还挺不错的


拉去mysql镜像

[root@rzk ~]# docker pull mysql:8.0

8.0.27: Pulling from library/mysql

72a69066d2fe: Pulling fs layer

93619dbc5b36: Pulling fs layer

99da31dd6142: Pulling fs layer

626033c43d70: Pull complete

37d5d7efb64e: Pull complete

ac563158d721: Pull complete

d2ba16033dad: Pull complete

688ba7d5c01a: Pull complete

00e060b6d11d: Pull complete

1c04857f594f: Pull complete

4d7cfa90e6ea: Pull complete

e0431212d27d: Pull complete

Digest: sha256:e9027fe4d91c0153429607251656806cc784e91493271037f7738bd5b8e7709

Status: Downloaded newer image for mysql:8.0

docker.io/library/mysql:8.0

创建映射挂载卷目录

[root@rzk mysql8]# pwd

/opt/mysql8

[root@rzk mysql8]# mkdir conf

[root@rzk mysql8]# mkdir logs

[root@rzk mysql8]# mkdir data


docker


在conf目录新建my.cnf

[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
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
# Custom config should go here
!includedir /etc/mysql/conf.d/

运行容器

docker run --restart=always  \\
-v /opt/mysql8/conf/my.cnf:/etc/mysql/my.cnf \\
-v /opt/mysql8/logs:/logs \\
-v /opt/mysql8/data/:/var/lib/mysql \\
-p 3310:3306 \\
--name mysql8 \\
-d mysql:8.0 \\
-e MYSQL_ROOT_PASSWORD=123123 \\
--privileged=true \\
--character-set-server=utf8mb4

参数解析

参数

含义

--restart=always

当 Docker 重启时,容器自动启动

--name

起别名

-p 3306:3306

映射端口

-v

目录挂载

d mysql:8.0

指定运行版本

-e MYSQL_ROOT_PASSWORD=‘密码’

设置root用户密码

--privileged=true

赋予系统root权限

--character-set-server=utf8mb4

设置字符集为utf8mb4

操作步骤

(一)、新建文件

[root@rzk mysql8]# pwd
/opt/mysql8
[root@rzk mysql8]# mkdir conf
[root@rzk mysql8]# mkdir logs
[root@rzk mysql8]# mkdir data

(二)、拉取mysql8.0镜像

[root@rzk ~]# docker pull mysql:8.0

8.0: Pulling from library/mysql
72a69066d2fe: Pulling fs layer
93619dbc5b36: Pulling fs layer
99da31dd6142: Pulling fs layer
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e91493271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:8.0
docker.io/library/mysql:8.0

(三)、在conf目录新建my.cnf

[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
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
# Custom config should go here
!includedir /etc/mysql/conf.d/

(四)、在conf目录新建my.cnf

docker run --restart=always -d  \\
-v /opt/mysql8/conf/my.cnf:/etc/mysql/my.cnf \\
-v /opt/mysql8/logs:/logs \\
-v /opt/mysql8/data:/var/lib/mysql \\
-p 3310:3306 \\
--name mysql8 \\
-e MYSQL_ROOT_PASSWORD=123123 \\
--privileged=true --restart unless-stopped mysql:8.0 \\
--character-set-server=utf8mb4

(五)、验证mysql版本

获取容器名

[root@rzk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8082f1 mysql:8.0 " t.s…" ago hours 33060/tcp 06>3306/tcp mysql8

docker


进入容器内部查看mysql版本

[root@rzk ~]# docker exec -it 808 bash
root@8082f19b024b:/#

docker

输入mysql -uroot -p ,输入部署的密码即可,8.0.29这是最新的8版本

root@8082f19b024b:/# mysql -uroot -p
Enter password:
root@8082f19b024b:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 8
Server version: 8.0.29 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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>

修改密码

使用select user,plugin from user where user=root; 查看加密方式

1、...  mysql;

2、ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 密码;

3、update user set host=% where user=root;

4、flush privileges;

上面的语句执行后,服务器记得开启外网端口,使用数据库软件进行连接


使用数据库软件进行连接


docker


以上是关于docker 部署mysql8.0的主要内容,如果未能解决你的问题,请参考以下文章

(Docker Nginx) Spring boot+Vue 前后端分离部署 详细完整版

docker 安装mysql8.0

Docker 安装mysql8.0

Docker部署superset服务「BI服务」

Docker的简单应用—>使用Docker安装Mysql8.0

Docker的简单应用—>使用Docker安装Mysql8.0