Centos 7.8下使用 Docker 安装 MySQL 8

Posted zuozewei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:
在这里插入图片描述

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

以上是关于Centos 7.8下使用 Docker 安装 MySQL 8的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.8下Oracle 11g安装记录

centos 7.8下安装go1.18.3版本

Docker安装及操作

Docker安装及操作

Docker安装及操作

Docker安装及操作