Docker安装MySQL数据库

本文翻译自:MySQL Docker Containers:Understanding the basics

 

1.下载MySQL镜像

docker pull mysql:5.6

如此便可以下载最新的MySQL镜像,通过查看下载的镜像列表查看验证

 

 如果列表有显示,说明Docker已经下载了对应的MySQL镜像。

2.安装镜像

  • --name:运行后Container的名称
  •  -e:环境变量(也写作-env)
  •  -d:后台运行不退出
  • tag:版本号,此处为8.0(mysql),如果缺省则对应latest 
docker run --name=mysqldb -p=3306:3306 --env="MYSQL_ROOT_PASSWORD=longtao" mysql:5.6

  将Mysql配置文件映射到本机

docker run --name mysqldb -p 3306:3306  -v $PWD/conf/my.cnf:/etc/my.cnf.d/ -v $PWD/logs:/logs -v $PWD/data:/data -e MYSQL_ROOT_PASSWORD=longtao -d mysql:8.0

对于MySQL8.0以上的版本,报错:Authentication plugin 'caching_sha2_password' cannot be loaded ,解决办法:

docker run --name mysqldb -p 3306:3306  -v $PWD/conf/my.cnf:/etc/my.cnf.d/ -v $PWD/logs:/logs -v $PWD/data:/data -e MYSQL_ROOT_PASSWORD=longtao -d mysql:8.0 --default-authentication-plugin=mysql_native_password

MySQL默认编码方式不是UTF8,可以在安装时修改指令

docker run --name mysqldb3307 -p 3306:3306  -v $PWD/conf/my.cnf:/etc/my.cnf.d/ -v $PWD/logs:/logs -v $PWD/data:/data -e MYSQL_ROOT_PASSWORD=longtao -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

3.安装PostGreSQL 

 docker run --name=postgredb -p=5432:5432 -env="POSTGRES_PASSWORD=longtao" -d postgres:11.1

4.常见错误

 错误1:未设置环境变量

错误2:navicat无法连接

 进入mysql容器

docker  exec  -it  <63c9e29aelef(容器id)>  bash

进入容器

mysql  --user=root  --password 

然后根据密码提示输入mysql密码

然后输入下面的命令,注意修改密码(newpassword)

ALTER  USER  'root'  IDENTIFIED  WITH  mysql_native_password  BY  'newpassword'; 

 错误3:容器时区问题 

docker exec -it <容器名> /bin/bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime
docker restart <容器名>

参考 

Docker 多种数据库的安装

 

Docker MySql报2059错误: Authentication plugin 'caching_sha2_password' cannot be loaded

 

原文地址:https://www.cnblogs.com/imstrive/p/10185459.html