偶爾有需求,涉及到數據庫的改動,那必定要表結構改動、程序調試都先在測試環境淬鍊千百遍。 如今流行微服務、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;"'