docker - 安装mysql

总的来说,不推荐把 mysql 安装到 docker 下。

  • 使用常规方式部署,迁移数据库的时候,通过复制粘贴的方式即可,门槛本身就很低;
  • mysql 大部分人会,但是不一定懂 docker,后期的项目维护,客户可能无法接受;
  • 使用 docker 安装,要考虑 docker 自身的问题,多了一些 docker 相关的风险项;
  • 有些纯粹是玩得花,k8s、swarm、nas、nfs能上的全上,任何一个环节出问题,都能导致 mysql 损坏。

如果最终仍然决定,要装到容器下,我建议不要配置重启策略,发生故障的时候,程序擅自重启,存在非常大的风险。

镜像拉取/删除

# 拉取镜像
docker pull mysql:8.0.32
# 移除镜像
docker rmi -f mysql:8.0.32

创建容器

# 安装 mysql,注意这是单行命令
docker run --restart=always --name=mysql8 -p 3307:3306 
-v /mydata/mysql/log:/var/log/mysql 
-v /mydata/mysql/data:/var/lib/mysql 
-v /mydata/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root mysql:8.0.32

# 参数说明:
# restart=always 自动重启
# -p 3307:3306 将容器 3306 端口映射到主机 3307
# -e MYSQL_ROOT_PASSWORD=root 设置初始密码为 root
# -v 目录挂载

# 剩下的步骤与常规安装一致,进入到容器内部,修改 root 账号密码

初始化数据库

进入到容器内部,初始化数据库,操作方式与 linux 上安装一致

# 登录账号
mysql -u root -p

# 修改密码(两个命令都可用)
# SET PASSWORD = PASSWORD('root');

# 修改密码(两个命令都可用)
alter user 'root'@'localhost' identified by 'root';

# 密码永不过期
alter user 'root'@'localhost' password expire never;

# 允许任何主机登录
update user set host = '%' where user = 'root';

# 载入信息使之生效,有时候会报错,先执行一下这依据
flush privileges;

posted on 2023-09-11 12:09  疯狂的妞妞  阅读(123)  评论(0编辑  收藏  举报

导航