MySql Docker的一些操作方法

偶尔有需求,涉及到数据库的改动,那一定要表结构改动、程序调试都先在测试环境淬炼千百遍。
现在流行微服务、docker部署,很容易拉起一整套环境。

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>

Script from Host

问题来了,一套环境在不同的docker里面,attach docker来来去去也是很恶心的,如何在宿主机上操作mysql呢?
比如我写好了一个建库脚本,可以这么操作:

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;"'

要查下有哪些表:

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;"'
posted @ 2019-11-19 17:19  梦溺残沙里  阅读(140)  评论(0编辑  收藏  举报