ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

docker 部署mysql8.0

2022-07-01 14:00:06  阅读:279  来源: 互联网

标签:Pull complete 8.0 部署 mysql8 mysql8.0 mysql docker root


拉去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

在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

进入容器内部查看mysql版本

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

输入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、use mysql;

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

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

4、flush privileges;

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

使用数据库软件进行连接

标签:Pull,complete,8.0,部署,mysql8,mysql8.0,mysql,docker,root
来源: https://www.cnblogs.com/rzkwz/p/16434426.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有