最近在部署django,不想在手動(dòng)安裝一遍mysql,便嘗試使用docker,總結(jié)了安裝的心得,這些前提都是在安裝了docker后:
1. 查看mysql鏡像;
![](http://img.jbzj.com/file_images/article/202010/2020101592515554.jpg?202091592526)
2.有鏡像,直接拉取最新鏡像
docker pull mysqlv:latest
3.啟動(dòng)mysql鏡像
```shell
docker run –name w-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest
–name:給新創(chuàng)建的容器命名,此處命名為w-mysql
-e:配置信息,此處配置mysql的root用戶的登陸密碼
-p:端口映射,表示在這個(gè)容器中使用3306端口第二個(gè)映射到本機(jī)的端口號(hào)也為3306第一個(gè)
-d:成功啟動(dòng)容器后輸出容器的完整ID
4.登錄mysql
```shell
docker exec -it w-mysql mysql -uroot -p
![](http://img.jbzj.com/file_images/article/202010/2020101592725321.png?202091592735)
5.創(chuàng)建一個(gè)遠(yuǎn)程能連接的用戶
create user 'tantan404' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'tantan404';
6.嘗試用Navicat連接
![](http://img.jbzj.com/file_images/article/202010/2020101592819110.png?202091592828)
7.可能的報(bào)錯(cuò)
![](http://img.jbzj.com/file_images/article/202010/2020101592858326.png?20209159298)
連接時(shí)候可能會(huì)報(bào)這個(gè)錯(cuò)誤,原因是不支持mysql新版本的加密規(guī)則,mysql8 之前的版本中加密規(guī)則是mysql_native_password,而在mysql8之后,加密規(guī)則是caching_sha2_password, 解決問題方法有兩種,一種是升級(jí)navicat驅(qū)動(dòng),一種是把mysql用戶登錄密碼加密規(guī)則還原成mysql_native_password. 我用的第二種方式:
操作如下:
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規(guī)則 ,'password'改成你的密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼 ,'password'是你的密碼
FLUSH PRIVILEGES; #刷新權(quán)限
8.結(jié)束
簡單的基于docker的mysql安裝,做一個(gè)記錄
以上就是docker如何安裝mysql的詳細(xì)內(nèi)容,更多關(guān)于docker安裝MySQL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!