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的主要内容,如果未能解决你的问题,请参考以下文章