docker创建mysql:8.0.20

最后修改时间2024-03-28

操作系统

Linux version 5.15.0-86-generic
(buildd@lcy02-amd64-086)
(gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38)
#96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023

docker查找mysql:8.0.20

sudo docker search mysql:8.0.20

docker拉mysql:8.0.20

sudo docker pull mysql:8.0.20

创建mysql:8.0.20相关文件夹和文件

mkdir /home/ubuntu/mysql
mkdir /home/ubuntu/mysql/log
mkdir /home/ubuntu/mysql/data
mkdir /home/ubuntu/mysql/conf

docker创建mysql:8.0.20容器

sudo docker create -p 3306:3306 \
--name Tmysql \
--privileged=true \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
镜像名/镜像ID

启动docker的mysql:8.0.20

sudo docker start \
容器ID/容器名 &

复制my.cnf文件

sudo docker cp \
容器ID/容器名 \
:/etc/mysql/my.cnf /home/ubuntu/mysql/conf

停止创建的mysql:8.0.20容器

sudo docker stop \
容器ID/容器名

删除创建的mysql:8.0.20容器

sudo docker rm \
容器ID/容器名

创建新的mysql:8.0.20容器,并挂载,样例如下
方法一:
创建新的mysql:8.0.20容器,不会自行运行

sudo docker create -p 3306:3306 \
--name Tmysql \
--privileged=true \
-v /home/ubuntu/mysql/log:/var/log/mysql \
-v /home/ubuntu/mysql/data:/var/lib/mysql \
-v /home/ubuntu/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
镜像名/镜像ID

启动新创建的mysql:8.0.20容器

sudo docker start 容器ID/容器名 &

方法二:
创建新的mysql:8.0.20容器,会自行后台运行

sudo docker run -p 3306:3306 \
--name Tmysql \
--privileged=true \
-v /home/ubuntu/mysql/log:/var/log/mysql \
-v /home/ubuntu/mysql/data:/var/lib/mysql \
-v /home/ubuntu/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=root \
-d 镜像名/镜像ID
端口映射
-p

挂载文件权限设置
--privileged=true

设置 开机后自动重启容器
--restart unless-stopped

挂载日志
-v /home/ubuntu/mysql/log:/var/log/mysql

挂载数据文件 持久化到主机
-v /home/ubuntu/mysql/data:/var/lib/mysql

挂载配置文件
-v /home/ubuntu/mysql/conf/my.cnf:/etc/mysql/my.cnf

容器时间与宿主机同步
-v /etc/localtime:/etc/localtime

设置无需密码
-e MYSQL_ALLOW_EMPTY_PASSWORD=true

设置密码
-e MYSQL_ROOT_PASSWORD=xxx

后台启动mysql
-d  镜像名/镜像ID

进入mysql:8.0.20容器

sudo docker exec \
-i -t \
容器ID/容器名 \
/bin/bash

直接进入mysql:8.0.20

sudo docker exec \
-i -t \
容器ID/容器名 \
mysql -uroot

创建mysql用户

CREATE USER '用户名' @'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名' @'%' WITH GRANT OPTION;

删除无需密码的root用户

DELETE FROM mysql.user WHERE Host = '%' AND User = 'root';

https://blog.csdn.net/u014576291/article/details/105890286
https://blog.csdn.net/qq_41566366/article/details/121763099

posted @ 2024-03-28 20:30  晓谪  阅读(13)  评论(0编辑  收藏  举报