docker安装mysql服务
- 拉取镜像
docker pull mysql

- 启动镜像的一个实例(容器)
docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3307:3306 -d mysql:latest
-
-name
: 给新创建的容器命名, 我这里直接叫mysql -
-e
: 配置信息, root用户的登录密码 -
-p
: 端口映射, 我这里映射主机的3307端口到mysql的3306端口 -
-d
: 成功启动容器后输出容器的完整ID - 最后mysql镜像名, 后面可以指定tag(mysql:latest)
- 查看容器运行状态
docker ps

可以看到容器的ID, 源镜像, 创建时间,状态,端口映射, 容器名。
- 进入容器
docker exec -it mysql bash
- 启动和关闭容器
可以通过指定容器名字和指定容器ID来启动和关闭
docker start mysql
docker stop mysql
- 遇到的问题
- mysql 8.0
django.db.utils.OperationalError: (1251, 'Client does not support authentication protocol requested by server; consider upgrading MySQL client')
解决办法:- 配置文件设置默认的加密方式
配置文件中加入# 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password
- 通过数据库操作修改默认加密方式
select host, user, authentication_string, plugin from user; # 查看相关的加密方式
xiugaiqian.png
update mysql.user set plugin='mysql_native_password'; select host, user, authentication_string, plugin from user;
xiugaihou.png
- 配置文件设置默认的加密方式
docker run --name test -e MYSQL_ROOT_PASSWORD=smartlamp -e MYSQL_DATABASE=smartlamp -p 3314:3306 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci
网友评论