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