在上一篇在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哦!