docker里安装mysql并远程连接

docker里安装mysql并远程连接

安装mysql

mysql-Docker Hub:https://hub.docker.com/_/mysql
在这里插入图片描述

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

我执行的命令:-p是将端口号映射

# docker run --name xiaomin-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 28001:3306 -d mysql

启动服务:docker start
停止服务:docker stop
删除容器:docker rm
查看所有容器:docker ps -a

navicat远程连接mysql

在这里插入图片描述
坑一:端口号一定要写映射后的端口号28001,否则会报错1130
在这里插入图片描述
查询这个错误时发现是权限问题,于是尝试去修改权限:
1、linux上登录mysql
坑二:一定要先进入容器,否则会报错1045(28000)
在这里插入图片描述
2、进入mysql容器:
在这里插入图片描述

# docker exec -it xiaomin-mysql bash

3、登录mysql
在这里插入图片描述
4、执行命令修改权限

update user set host = '%' where user = 'root';

5、刷新权限表

FLUSH PRIVILEGES;

执行完之后发现还是报错,把端口号修改正确后,出现了另一个错2059:
在这里插入图片描述
坑三:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
于是更改加密规则:

mysql -uroot -ppassword #登录
use mysql; #选择数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户密码
FLUSH PRIVILEGES; #刷新权限

改完之后依然报错!!!
坑四:执行上述命令时,除了修改password,还要将localhost修改为%,修改后成功连接上!
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值