当前位置:   article > 正文

docker入门(一)mysql_安装mysql8.4 的时候,提示select default authentication plu

安装mysql8.4 的时候,提示select default authentication plugin,如何在配置文件

开头

首先docker技术的架构优势和用途在其他文章已经写的很完备了,我就不再赘述,本篇博客介绍docker的安装和mysql的入门安装。

安装docker

环境:CentOS7

yum install docker
  • 1

等待下载安装完毕后,启动docker

service docker start
//重新启动docker
service docker restart
  • 1
  • 2
  • 3

由于docker仓库在国外,所以我们配置国内加速器

vi  /etc/docker/daemon.json

//i进入编辑模式,添加如下json数据

{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}

//esc :wq退出并保存
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

重启docker

service docker restart
  • 1

显示版本号等信息即为安装成功

docker version
  • 1

安装mysql

先贴出mysql镜像文档地址:https://hub.docker.com/_/mysql/

  1. 下载mysql镜像:
  sudo docker pull mysql
  • 1
  1. 等待下载完以后执行
docker images
  • 1

可以看见刚下载的mysql镜像
在这里插入图片描述
3. 启动MySQL

sudo docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
  • 1

-name:新创建的容器名
-e:此处配置了root用户的登录密码
-p:将主机的3306端口映射到容器test-mysql的3306端口(前为主机,后为容器)
-d:创建成功后输出容器的id
末尾的mysql 为镜像的名称
在这里插入图片描述4. 连接MySQL
终于到了激动人心的测试环节
输入好ip账号密码和端口点击连接
在这里插入图片描述根据提示信息可以看到,无法加载caching_sha2_password加密插件,从MySQL8.0开始默认使用caching_sha2_password加密认证,所以我们需要更改默认的验证方式,那么有三种常见的方法:

  • 从主机进入docker容器修改MySQL中的user表内容

显然这种方式不太优雅,不做介绍。

  • 在启动docker容器时通过命令修改默认加密规则
//在最后加上它
--default-authentication-plugin=mysql_native_password
//例:
sudo docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql  --default-authentication-plugin=mysql_native_password
  • 1
  • 2
  • 3
  • 4
  • 挂载主机上的配置文件为镜像中的配置文件

推荐使用第三种方式,更为灵活。

挂载外部配置文件和数据持久化

首先在主机上创建如下的文件夹结构
在这里插入图片描述创建my.cnf配置文件

touch /docker/mysql/conf/my.cnf
  • 1

在my.cnf中添加:

[mysqld]
user=mysql
character-set-server=utf8
//设置加密方式为mysql_native_password
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

执行命令

sudo docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d --privileged=true -v=/docker/mysql/conf/my.cnf:/etc/my.cnf -v=/docker/mysql/data:/var/lib/mysql mysql:5.6
  • 1

–name:容器名
-e:配置参数,此处配置的是root账户的密码
-p:讲主机的3306端口映射到容器test-mysql的3306端口(前为主机,后为容器)
–privileged=true 使容器内的root账户真正拥有操作外部环境的root权限
-v=xxxxx:yyyyyy挂载本地路径或文件代替容器中的路径,xxxx为本机,yyy为容器中路径

执行完毕后我们再尝试连接
在这里插入图片描述测试成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/682901
推荐阅读
相关标签
  

闽ICP备14008679号