偶尔有需求,涉及到数据库的改动,那必定要表结构改动、程序调试都先在测试环境淬炼千百遍。 如今流行微服务、docker部署,很容易拉起一整套环境。mysql
Compose File Demo
mysql: image: mysql:5.7.25 restart: unless-stopped command: --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: example ports: - 3306:3306
MySql Client Operation
好比mysql docker,如何链接并执行命令呢? 试试 mysql -uroot -h 127.0.0.1 -P 3306 -p<your password>
sql
Script from Host
问题来了,一套环境在不一样的docker里面,attach docker来来去去也是很恶心的,如何在宿主机上操做mysql呢? 好比我写好了一个建库脚本,能够这么操做:docker
docker cp backend/ds_market.sql data_store_mysql_1:/docker-entrypoint-initdb.d/ && docker exec data_store_mysql_1 sh -c 'export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" ; mysql -uroot < /docker-entrypoint-initdb.d/ds_market.sql'
查询有哪些库:数据库
docker exec data_store_mysql_1 sh -c 'export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" ; mysql -uroot -e "show databases;"'
要查下有哪些表:less
docker exec data_store_mysql_1 sh -c 'export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" ; mysql -uroot -e "use datasets_market;show tables;"'
查询一些条目微服务
docker exec data_store_mysql_1 sh -c 'export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" ; mysql -uroot -e "use datasets_market;select * from datasets limit 10;"'