本文翻譯自: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 MySql報2059錯誤: Authentication plugin 'caching_sha2_password' cannot be loaded