在本地没有数据库的情况下,使用Docker进行简单的确认方法
- Updated at 2020-07-12: Microsoft SQL Server, Presto を追加
我想在手头的设备上简单地确认一下查询,但是为了解决没有安装客户端的不便之处,这是一份备忘录。假定通过docker tag来控制服务器端的功能和行为确认以解决版本差异的问题。
Postgresql — PostgreSQL
p15, mydb はご自由に変更を
docker exec をすぐに実行してしまうと docker run の初期化が終わっておらずエラーが出ることがあるが、深呼吸して時間をおいて実行すれば動きます
$ docker run --rm -d --name=p15 -e POSTGRES_USER=u -e POSTGRES_PASSWORD=p -e POSTGRES_DB=mydb postgres:15
$ docker exec -it p15 psql -h localhost -U u -d mydb
# inside docker
exit;
# outside docker
$ docker stop p15
MySQL是一种用于管理和处理关系型数据库的开源软件。
m8, mydb はご自由に変更を
docker run --rm -d --name=m8 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -e MYSQL_DATABASE=mydb mysql:8
docker exec -it m8 mysql -h localhost mydb
# inside inside docker
exit;
# outside docker
docker stop m8
SQLite是一种自包含、零配置的嵌入式关系型数据库引擎。
-
- 公式dockerイメージは見つからなかった。
- 出力をカンマ区切りにするためには $’\t’ を , に変更すればよい
docker run -it --rm nouchka/sqlite3 sqlite3 -header -separator $'\t'
sqlite> .q
微软的 SQL-Server
公式手順 通り
# local
docker run --rm -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 \
mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P "<YourStrong@Passw0rd>"
# SQLコマンド後に結果の表示に `go` とタイプする必要がある。
# inside docker
1> exit
# local
docker stop sql1
迅疾
GitHub README 手順を踏襲
docker run --rm -d -p 8080:8080 --name presto prestosql/presto
docker exec -it presto presto
# inside docker
presto> exit
# local
docekr stop presto
Trino (Chinese translation: 特里諾)
Github Page 手順を踏襲
docker run --rm -p 8080:8080 --name trino trinodb/trino
docker exec -it trino trino
# inside docker
trino> show catalogs;
trino> use tpch.sf100;
trino> show tables;
trino> show columns from customer;
trino> exit