docker 部署mysql8.0
2022/7/2 2:20:33
本文主要是介绍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
在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;
上面的语句执行后,服务器记得开启外网端口,使用数据库软件进行连接
使用数据库软件进行连接
这篇关于docker 部署mysql8.0的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南