This website requires JavaScript.

Docker 安装 MySQL Server

by  admin  

本文将使用 MySQL 团队创建的 mysql-server Docker 镜像进行安装。需要注意的是:该镜像是专门为 Linux 平台构建的,在其他平台使用将会存在部分风险


开始安装

下载 MySQL Server 镜像:

$ docker pull mysql/mysql-server:latest

启动 MySQL Server 实例:

$ docker run -d --name=brusw-mysql80 -p 3306:3306 \
    --mount type=bind,src=/var/lib/mysql,dst=/var/lib/mysql \
    --restart=always \
    mysql/mysql-server:latest
  • -d:设置容器后台运行
  • --name:指定容器名称为brusw-mysql80
  • -p:把容器 3306 端口映射到主机 3306 端口
  • --mount:将主机/var/lib/mysql目录挂载到容器/var/lib/mysql目录
  • --restart:容器退出后总是(always)自动重启

修改密码

正式使用 MySQL 前,需要修改 root 账户的密码。

容器初始化完成后,可以在日志查看 root 账户的默认密码:

$ docker logs brusw-mysql80 2>&1 | grep GENERATED

[Entrypoint] GENERATED ROOT PASSWORD: ok;ybqecYM[AmxiLCUjiqyn2eBo

接着使用 root 账户从容器内连接到 MySQL 服务:

$ docker exec -it brusw-mysql80 mysql -uroot -p

Enter password:

在输入 root 账户的默认密码后,执行以下命令来重置密码:

$ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

常见问题

使用客户端连接可能存在的问题以及解决方案

ERROR 1130: Host * is not allowed to connect to this MySQL server

$ use mysql;
$ update user set host='%' where user='root';
$ flush privileges;

ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client

$ use mysql;
$ alter user 'root'@'%' identified with mysql_native_password by '你的密码';
$ flush privileges;
相关推荐
  • 使用 TIG 构建自动化监控平台
  • Jenkins 多分支流水线构建标签
  • CentOS 7 安装 Blue Ocean
  • Certbot 申请免费 HTTPS 证书
  • SSH 免密登录 Linux 服务器