linux系统 docker安装mysql 8.0**及 mysql 1251错误

linux系统 docker安装mysql 8.0**及1251错误

一、安装步骤

  1. docker拉取mysql8.0镜像
    docker pull mysql:8.0
  2. docker 运行mysql容器
    . docker run --name #名称# -e MYSQL_ROOT_PASSWORD='#root用户密码# -p 3306:3306 -d mysql
    –name 后面的是docker容器名
    -p 32xxx:3306 这里需要注意 32xxx 是你链接mysql的时候的Port
    -e MYSQL_ROOT_PASSWORD 是设置mysql的root账号密码
    -d mysql 是你的镜像标签
  3. 查看容器是否启动
    docker ps  

在这里插入图片描述docker ps

**

安装mysql8.0 出现的问题

**
用本机或者linux系统的navicat连接mysql数据库 会出现 1251报错:
1251-Client does not support authentication protocol requested by server;
原因 : mysql8.0默认采用了信息的密码加密方式,我们需要修改加密方式并同时修改密码(以另一种方式加密)

1.进入mysql容器内部 如图:

linux系统 docker安装mysql 8.0**及 mysql 1251错误_第1张图片
docker ps 查看容易ID
docker exec -it e44f8d77f1ad bin/bash 进入容器内部
mysql -u root -p 登入mysql

2.查看mysql用户信息

linux系统 docker安装mysql 8.0**及 mysql 1251错误_第2张图片
select host,user,plugin from mysql.user
其中 host 中:‘%’ 代表其他访问数据库的ip不限制
‘localhost’ 本地访问数据的ip
1.如果是宿主机(电脑ip) 或者其他的ip访问数据则要修改 host=‘%’的用户户数
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
2.如果是linux本身连接数据库 则要修改 host=‘localhost’的用户户数
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;

最后
FLUSH PRIVILEGES; #刷新权限

再次查看用户的信息 会发现 plugin的方式变了
然后用navicat连接测试,如果期间操作有误 可以先删除mysql容易 重新运行容易
感谢浏览!


 

你可能感兴趣的:(docker技术)