1

docker 部署mysql8.0

 1 year ago
source link: https://blog.51cto.com/u_15384850/5434502
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

拉去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 部署mysql8.0_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

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 部署mysql8.0_mysql_02

进入容器内部查看mysql版本

[root@rzk ~]# docker exec -it 808 bash
root@8082f19b024b:/#
docker 部署mysql8.0_docker_03

输入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 部署mysql8.0_docker_04

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK