在上一篇在Docker中体验数据库之Mongodb之后,这次记录一下在docker中安装mysql。过程要比Mongodb麻烦一点……
参考网址:
https://dev.mysql.com/doc/refman/5.7/en/linux-installation-docker.html
https://hub.docker.com/r/mysql/mysql-server/
安装过程如下:
0、docker rm mysql1 -f //强制删除容器
1、docker pull mysql/mysql-server2、docker images3、docker ps -a4、docker run --name mysql1 -p 3307:3306 -d mysql/mysql-server --default-authentication-plugin=mysql_native_password //注意最后的配置
5、docker logs mysql1 2>&1 | grep GENERATED //查看日志
6、docker restart mysql17、docker logs mysql1 2>&1 | grep GENERATED //重启之后还是没有发现密码,说明密码为空
8、docker exec -it mysql1 mysql -uroot -p9、show databases;10、ALTER USER 'root'@'localhost' IDENTIFIED BY '123qwe';11、select user,host frommysql.user;//远程访问docker中的mysql时,连接时会报错,1130
12、UPDATE mysql.user SET host='%' WHERE user='root';13、docker restart mysql1//此时终于连接成功!!!!
【例外】//查看本机IP
1、ip route show2.1、sudo apt install net-tools2.2、ifconfig 或者 route -n 或者 netstat -rn
在贴一下,安装过程中报的错误:
--default-authentication-plugin=mysql_native_password
在看一下这个配置,如果没有这个配置,连接数据库时会有如下错误:
MySQL8.0 的密码加密规则变了,网上一搜2059一大堆……当然你也可以在创建容器的时候不添加这个配置,之后在数据库中修改也是一样的。
alter user 'root'@'%' identified with mysql_native_password by '123qwe';
最后来一个连接成功的截图:
结束。
【2019-12-11更新】
一、更新笔记开始的参考网址
msql官方:
docker官方:
注意:在dockerhub中搜索mysql,会搜索到很多结果,其中有两个或许是我们想要的:mysql和mysql/mysql-server……😵😵😵除了这两个的发布者(应该一个是mysql官方的,另一个是docker官方的)不一样的,其他的我一概不知,具体他们有哪些差异有那位大神知道,还请告知,谢谢!
【2019-12-23更新】
这次使用的是“mysql”镜像,没有上面的那么麻烦,又是密码(或者是上面也支持,只不过没有测试)又是报错的……
docker run --name mysql0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123qwe -d mysql
拉取镜像之后,执行上面的命令就可以远程连接了。如果是上面的命令,端口号是3307哦!