docker 安装 mysql

Docker 部署 MySQL-8

目前的 Host 系统是 Ubuntu 18.04,默认的 MySQL 版本 5.6。为了获得更新的 MySQL 支持,我选择使用 Docker 部署 MySQL-8。

安装 Docker

Ubuntu 安装 Docker 的过程很简单,参照官网教程一步一步做即可。注意安装完成以后还要修改权限,使得普通用户可以使用 docker 命令。

修改镜像源

由于众所周知的原因,在中国大陆拉取 docker 镜像速度极慢。为了节约时间,建议大家换用国内的镜像源。我本地网络使用中科大镜像源速度不佳,改用了阿里云的免费镜像。配置过程详见这里

部署 MySQL

部署 MySQL 的过程很简单,执行如下命令即可:

1
docker run --name <name> -v <volume-name>:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<root-password> -p 3306:3306 -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

为了保存容器中的 MySQL 数据,这里需要提前创建一个 volume。简单来说,volume 是一组本地目录和 docker 内目录的映射,用于持久化容器内部的数据。重建命令如下:

1
docker volume create <volume-name>

这里的 volume-name 与上文创建 MySQL 容器的对应。

创建 root 用户用于远程访问

在之前的版本,MySQL 会自行创建 root 用户。但是在 8.0,默认的 root 用户仅用于本地登录,我们没有做端口映射,所以是内网登陆,会被 MySQL 拒绝。这里我们要创建一个新的 root 用户用于远程登录。

首先打开 MySQL 容器中的 shell:

1
docker exec -it <name> bash

这里的 name 与上文对应。然后“本地登录 MySQL”:

1
mysql -uroot -p

填入上文的密码即可。最后创建远程 root 并分配权限:

1
2
CREATE USER 'root'@'%' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

到此,我们的 MySQL in Docker 就部署完成了。

updatedupdated2020-05-292020-05-29
加载评论