背景
周末闲着没事,然后想着在虚拟机用docker装个mysql吧。然后就开始安装了。
正文
打开dockerhub.com,在输入框输入mysql,选择mysql第一个,进入后找到How to use this image,当时我是按照这个命令去做了,之后mysql也启动了。
但是客户端端就是连接不了,我去授权一直授权不成功。 GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY 'root' WITH GRANT OPTION; 在8.0之后授权的方式变了,所以一直授权不了,这是一个问题。可以此采用
GRANT ALL ON *.* TO 'root'@'%'; flush privileges; 这是授权问题解决了。其实第一问题是,映射一直没有做到,-p 3306:3306的时候一直报错,但今天又试了一下,之后成功了。docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest,查看映射也可以了。之后客户端还是连接不了,如下错误。
搜索了一下,是mysql版本问题,8.0之后的加密规则发生了变化,所以 修改一下加密规则就可以了。如图:
之后再次连接,
总结
有时候不能靠以前的经验来做事,所有事情并不是一成不变的。要敢于去尝试新的东西,不要光想,重要的是去实践。