Centos 7.8下使用 Docker 安装 MySQL 8

举报
zuozewei 发表于 2021/10/14 09:51:42 2021/10/14
【摘要】 Centos 7.8下使用 Docker 安装 MySQL 8

开发环境

  • Windows/MacOS
  • Navicat Premium 11.2.7及以上

服务器环境

  • Centos 7.8
  • Docker version 19.03.8
  • MySQL 8.0.26

使用 Docker 安装 MySQL 8

拉取官方镜像(我们这里选择 8.0.26,如果不写后面的版本号则会自动拉取最新版):

[root@vm-server ~]# docker pull mysql:8.0.26
8.0.26: Pulling from library/mysql
b4d181a07f80: Pull complete 
a462b60610f5: Pull complete 
578fafb77ab8: Pull complete 
524046006037: Pull complete 
d0cbe54c8855: Pull complete 
aa18e05cc46d: Pull complete 
fd6f649b1d0a: Pull complete 
2a97d48c2fdc: Pull complete 
30f0c7db48fc: Pull complete 
f5dda8df049e: Pull complete 
671b83fd7448: Pull complete 
5d9cc55fa997: Pull complete 
Digest: sha256:18d8d109aa64673c78aebfb845b929cfdac97a553332f4310f4de8d67ceb03d2
Status: Downloaded newer image for mysql:8.0.26
docker.io/library/mysql:8.0.26

启动镜像:

docker run -p 3306:3306 --name mysql_8 -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.26

启动成功后,进入容器内部拷贝配置文件,到宿主主机:

mkdir -p /mydata/mysql_8/conf
docker cp  mysql_8:/etc/mysql /mydata/mysql_8/conf/

拷贝容器的 /etc/mysql 目录到 主机目录 /mydata/mysql_8/conf/

删除 mysql_8 容器,重新创建容器:

[root@vm-server mysql]# docker stop mysql_8
mysql_8
[root@vm-server mysql]# docker rm mysql_8
mysql_8

启动 mysql_8 ,挂载配置文件,数据持久化到宿主主机

docker run \
	-p 3306 :3306 \
	--name mysql_8 \
	--privileged=true \
	--restart unless-stopped \
	-v /mydata/mysql_8/config/mysql:/etc/mysql \
	-v /mydata/mysql_8/logs:/logs \
	-v /mydata/mysql_8/data:/var/lib/mysql \
	-v /etc/localtime:/etc/localtime \
	-e MYSQL_ROOT_PASSWORD=root@123 \
	-d mysql:8.0.26

参数说明:

  • --privileged=true:挂载文件权限设置
  • --restart unless-stopped:设置开机后自动重启容器
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  • -v /mydata/mysql_8/conf:/etc/mysql:将配置文件夹挂在到主机
  • -v /mydata/mysql_8/logs:/logs:将日志文件夹挂载到主机
  • -v /mydata/mysql_8/data:/var/lib/mysql/:将数据文件夹挂载到主机
  • -v /etc/localtime:/etc/localtime:容器时区与宿主机同步
  • -e MYSQL_ROOT_PASSWORD=root@123:初始化 root 用户的密码
  • -d mysql:8.0.26:后台启动
[root@vm-server mysql_8]# docker run \
> -p 3308:3306 \
> --name mysql_8 \
> --privileged=true \
> --restart unless-stopped \
> -v /mydata/mysql_8/config/mysql:/etc/mysql \
> -v /mydata/mysql_8/logs:/logs \
> -v /mydata/mysql_8/data:/var/lib/mysql \
> -v /etc/localtime:/etc/localtime \
> -e MYSQL_ROOT_PASSWORD=root@123 \
> -d mysql:8.0.26
63b31b06efaefa7d6a780cf73197bfbe72a13f583b47907eeaca693f8cbe6ccc

进入 docker 本地连接 MySQL 客户端:

[root@vm-server mysql_8]#docker exec -it mysql_8 bash
root@63b31b06efae:/# mysql -uroot -proot@123

设置远程访问账号,并授权远程连接:

CREATE USER 'zuozewei'@'%' IDENTIFIED WITH mysql_native_password BY 'zuozewei';
GRANT ALL PRIVILEGES ON *.* TO 'zuozewei'@'%';       

使用 Navicat 远程连接 MySQL:
在这里插入图片描述

最后,新建数据库并初始化数据。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。