系統(tǒng)環(huán)境
- 操作系統(tǒng):mac
- Docker版本:18.03.1-ce
- docker-compose版本:1.21.2
一、拉取鏡像
docker pull mysql
二咽瓷、編寫 docker-compose.yml
文件
version: '2'
networks:
basic:
services:
mysql:
container_name: mysql
image: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=admin
volumes:
- ./mysql:/var/lib/mysql
networks:
- basic
這里需要說明下:
- MYSQL_ROOT_PASSWORD 是設(shè)置mysql的登錄密碼逗爹,我們進(jìn)入容器后登錄mysql就得用這個(gè)密碼擎宝。
- volumes 掛載把容器里面的
/var/lib/mysql
目錄掛載到本地的mysql
目錄下束析,如果這里不掛載到本地申尤,那你重啟容器時(shí)就會(huì)發(fā)現(xiàn)數(shù)據(jù)沒了滚粟,這個(gè)很重要寻仗。 - ports 這里配置mysql對(duì)外開放的端口,我這里就用默認(rèn)的3306凡壤。
最后的文件結(jié)構(gòu)就是這樣的:
文件結(jié)構(gòu)
三署尤、啟動(dòng)
我們只需要cd
到這個(gè)目錄下執(zhí)行:
docker-compose -f docker-compose.yml up -d mysql
看到上面的輸出,就說明啟動(dòng)成功了亚侠,當(dāng)然我們也可以再用
docker ps -a
去驗(yàn)證下曹体,是否已經(jīng)啟動(dòng)成功了
四、連接mysql
在終端輸入連接命令:
mysql -h 127.0.0.1 -uroot -p
會(huì)發(fā)現(xiàn)報(bào)這個(gè)錯(cuò)誤:
Enter password:
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
數(shù)據(jù)庫查詢user
表硝烂,發(fā)現(xiàn)新版使用的箕别,caching_sha2_password
,可能我自己的終端不支持這種格式的密碼。
解決方案:
1.進(jìn)入mysql容器
docker exec -it mysql /bin/bash
2.進(jìn)入mysql
mysql -uroot -padmin
3.修改密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
然后你再用root
密碼連接下剛才的mysql串稀,就OK了除抛。
此時(shí)你再看下你本地目錄下面的 mysql
目錄,就會(huì)發(fā)現(xiàn)多出了很多文件: